
/* 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 MHD_resume_connection(MHD_Connection *connection)

{
  bool write_ready;
  bool force_close;
  bool bVar1;
  undefined *puVar2;
  undefined3 extraout_var;
  int iVar3;
  int *piVar4;
  void *pvVar5;
  undefined4 uVar6;
  MHD_Daemon *pMVar7;
  time_t tVar8;
  int *piVar9;
  size_t *psVar10;
  MHD_UpgradeResponseHandle **ppMVar11;
  _Bool _Var16;
  uint *puVar12;
  int iVar13;
  MHD_FLAG MVar14;
  MHD_UpgradeResponseHandle *pMVar15;
  uint uVar17;
  MHD_Daemon *connection_00;
  uint uVar18;
  MHD_Daemon *p;
  MHD_Daemon *set;
  MHD_AccessHandlerCallback p_Var19;
  MHD_Connection *pMVar20;
  MHD_Daemon *pMVar21;
  MHD_AccessHandlerCallback p_Var22;
  MHD_Daemon *pMVar23;
  MHD_Daemon **ppMVar24;
  MHD_Daemon *pMVar25;
  MHD_Daemon *daemon;
  MHD_Connection *pMVar26;
  MHD_UpgradeResponseHandle *pMVar27;
  MHD_Connection *pMVar28;
  MHD_Connection *unaff_s1;
  MHD_Daemon *daemon_00;
  MHD_mutex_ *unaff_s2;
  MHD_Daemon *pMVar29;
  undefined4 uVar30;
  MHD_mutex_ *pMVar31;
  MHD_Daemon *ws;
  MHD_mutex_ *pMVar32;
  undefined1 *puVar33;
  MHD_FLAG MVar34;
  MHD_Daemon *unaff_s6;
  MHD_FLAG MVar35;
  MHD_Daemon *unaff_s7;
  code *pcVar36;
  code *pcVar37;
  undefined1 auStackY_3e0 [12];
  MHD_Daemon *pMStackY_3d4;
  MHD_Daemon *pMStackY_3d0;
  MHD_Daemon *pMStackY_3cc;
  MHD_Daemon *pMStackY_3c8;
  undefined4 uStackY_3c4;
  size_t *psStackY_3c0;
  undefined1 *puStackY_3bc;
  MHD_Daemon *pMStackY_3b8;
  MHD_Daemon *pMStackY_3b4;
  MHD_Daemon *pMStackY_3b0;
  code *pcStackY_3ac;
  MHD_socket MStack_378;
  MHD_socket MStack_374;
  MHD_Daemon *pMStack_370;
  undefined4 uStack_36c;
  undefined1 auStack_368 [148];
  undefined1 auStack_2d4 [256];
  MHD_Daemon MStack_1d4;
  MHD_Daemon *pMStack_54;
  MHD_Daemon *pMStack_50;
  MHD_Connection *pMStack_4c;
  MHD_mutex_ *pMStack_48;
  
  pMVar25 = connection->daemon;
  if ((pMVar25->options & 0x2000) == MHD_NO_FLAG) {
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,
               PTR_DAT_0003f05c + -0x3514);
    connection = unaff_s1;
  }
  else {
    unaff_s2 = &pMVar25->cleanup_connection_mutex;
    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);
    puVar2 = PTR_pthread_mutex_unlock_0003f33c;
    if (iVar3 != 0) goto LAB_0001bb7c;
    connection->resuming = true;
    pMVar25->resuming = true;
    iVar3 = (*(code *)puVar2)(unaff_s2);
    if (iVar3 == 0) {
      iVar3 = (pMVar25->itc).fd;
      if (((iVar3 != -1) &&
          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&
         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {
        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);
        return;
      }
      return;
    }
  }
  (**(code **)PTR_mhd_panic_0003f070)
            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,
             PTR_DAT_0003f05c + -0x51b8);
LAB_0001bb7c:
  connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;
  pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0);
  pcVar36 = *(code **)PTR_mhd_panic_0003f070;
  p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0);
  (*pcVar36)(connection_00,p,0xb01);
  piVar4 = *(int **)(pcVar36 + 0x23748);
  puVar33 = auStack_368 + 0xc;
  uVar30 = 0x8000001f;
  daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;
  pMStack_54 = (MHD_Daemon *)*piVar4;
  pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL);
  pMStack_50 = pMVar25;
  pMStack_4c = connection;
  pMStack_48 = unaff_s2;
  pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))();
  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
  connection_00->uri_log_callback_cls = pvVar5;
  ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974);
  pMVar25 = (MHD_Daemon *)0x0;
LAB_0001bc2c:
  daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;
  if (daemon != (MHD_Daemon *)0x0) {
joined_r0x0001bdcc:
    if (iVar3 != 0x13) {
      p = (MHD_Daemon *)0x3;
      if (daemon_00->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 **)(pcVar36 + 0x23734))();
      connection_00->eready_tail = (MHD_Connection *)0x0;
    }
    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {
      p = (MHD_Daemon *)0x1;
      (**(code **)(pcVar36 + 0x235c4))();
    }
    pMVar21 = (MHD_Daemon *)0x8;
    if ((daemon_00->itc).fd != -1) {
      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);
      iVar3 = (**(code **)(pcVar36 + 0x2367c))();
      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {
        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);
        MHD_DLOG(daemon_00,(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_00->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)) {
    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;
    pMVar25 = unaff_s6;
    if (pMVar29 == (MHD_Daemon *)0x0) {
      p = (MHD_Daemon *)(auStack_368 + 0x14);
      pMVar23 = p;
      do {
        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;
        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;
      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);
      pMVar23 = (MHD_Daemon *)0x400;
      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);
      if (iVar3 == 0) goto LAB_0001c364;
      pMVar23 = (MHD_Daemon *)0x0;
      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);
      if (-1 < iVar3) goto LAB_0001c380;
      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();
      pMVar21 = (MHD_Daemon *)*puVar12;
      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;
      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;
      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);
      daemon = pMVar21;
      pMVar29 = pMVar25;
LAB_0001c18c:
      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);
      MHD_DLOG(pMVar25,(char *)p,pMVar21);
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
      goto joined_r0x0001bdcc;
    }
    p = (MHD_Daemon *)0x1;
    auStack_368._16_4_ = &Elf32_Ehdr_00010000;
    auStack_368._12_4_ = pMVar28;
    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);
    if (iVar3 < 0) {
      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();
      if (*piVar9 != 4) {
LAB_0001bd98:
        daemon = (MHD_Daemon *)connection_00->cleanup_head;
        uVar6 = (**(code **)(pcVar36 + 0x236b0))();
        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);
        MHD_DLOG(daemon,(char *)p,uVar6);
        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_368;
      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
    }
    goto LAB_0001bc2c;
  }
  if (pMVar25 != (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);
  pMVar25 = (MHD_Daemon *)0x0;
  if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))
  {
    if (0 < (int)unaff_s7) {
      tVar8 = MHD_monotonic_sec_counter();
      iVar3 = tVar8 - (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_370 = unaff_s7;
      goto LAB_0001bc90;
    }
    ppMVar24 = (MHD_Daemon **)0x0;
    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;
LAB_0001be20:
    set = (MHD_Daemon *)(auStack_368 + 0x14);
    unaff_s6 = (MHD_Daemon *)auStack_2d4;
    pMVar21 = set;
    do {
      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;
      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;
    } while (unaff_s6 != pMVar21);
    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);
    pMVar21 = unaff_s6;
    do {
      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;
      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;
      pMVar7 = unaff_s7;
    } while (unaff_s7 != pMVar21);
    do {
      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;
      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;
    } while (&MStack_1d4 != pMVar7);
    MStack_378 = -1;
    if (iVar3 == 1) {
      pMVar23 = (MHD_Daemon *)0x400;
      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                                 (fd_set *)unaff_s6,&MStack_378,0x400);
      if (iVar3 == 0) goto LAB_0001c364;
LAB_0001c1ec:
      iVar13 = MStack_378 + 1;
    }
    else if (iVar3 == 0) {
      pMVar23 = (MHD_Daemon *)0x400;
      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                                 (fd_set *)set,&MStack_378,0x400);
      if (iVar3 == 0) goto LAB_0001c364;
      iVar13 = MStack_378 + 1;
    }
    else {
      if (iVar3 == 2) {
        pMVar23 = (MHD_Daemon *)0x400;
        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                                   (fd_set *)unaff_s7,&MStack_378,0x400);
        if (iVar3 != 0) goto LAB_0001c1ec;
LAB_0001c364:
        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);
        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);
        goto LAB_0001bcc4;
      }
      iVar13 = 0;
      if (iVar3 == 3) goto LAB_0001bcc4;
    }
    pMVar23 = unaff_s7;
    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);
    if (iVar3 < 0) {
      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();
      pMVar21 = (MHD_Daemon *)*puVar12;
      p = set;
      unaff_s6 = pMVar21;
      if (pMVar21 != (MHD_Daemon *)0x4) {
        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;
        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);
        daemon = pMVar25;
        goto LAB_0001c18c;
      }
LAB_0001c1b0:
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
    }
    else {
      iVar3 = (**(code **)(pcVar36 + 0x23708))
                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);
      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;
      unaff_s6 = (MHD_Daemon *)(uint)bVar1;
      iVar3 = (**(code **)(pcVar36 + 0x23708))();
      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;
      unaff_s7 = (MHD_Daemon *)(uint)write_ready;
      iVar3 = (**(code **)(pcVar36 + 0x23708))();
      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;
      pMVar23 = (MHD_Daemon *)(uint)force_close;
      p = unaff_s6;
      pMVar21 = 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_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  pMStack_370 = (MHD_Daemon *)0x0;
LAB_0001bc90:
  uStack_36c = 0;
  ppMVar24 = &pMStack_370;
  if (pMVar29 == (MHD_Daemon *)0x0) goto LAB_0001be20;
LAB_0001bc98:
  auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];
  auStack_368._16_4_ = (MHD_Connection *)0x0;
  if (iVar3 != 1) {
    if (iVar3 == 0) {
      auStack_368._16_4_ = &DAT_00030000;
      goto LAB_0001bd54;
    }
    if (iVar3 == 2) {
      auStack_368._16_4_ = (MHD_Connection *)0x20000;
      goto LAB_0001bd54;
    }
    if (iVar3 != 3) goto LAB_0001bd54;
    goto LAB_0001bcc4;
  }
  auStack_368._16_4_ = (MHD_Connection *)0x60000;
LAB_0001bd54:
  if (ppMVar24 == (MHD_Daemon **)0x0) {
    iVar3 = -1;
  }
  else {
    iVar3 = (int)pMStack_370 * 1000;
  }
  p = (MHD_Daemon *)0x1;
  iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3);
  if (iVar3 < 0) {
    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();
    if (*piVar9 != 4) goto LAB_0001bd98;
    goto LAB_0001c1b0;
  }
  pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f);
  bVar1 = (auStack_368._16_4_ & 0xba) != 0;
  pMVar23 = (MHD_Daemon *)(uint)bVar1;
  p = (MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1);
  iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),
                        SUB41((uint)(auStack_368._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_0001bc2c;
LAB_0001c01c:
  if ((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&
     (pMVar23 = (MHD_Daemon *)0x0,
     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {
    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;
    p = connection_00;
    (*daemon_00->notify_completed)
              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,
               MHD_REQUEST_TERMINATED_COMPLETED_OK);
  }
  pMVar28 = connection_00->cleanup_head;
  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;
  uVar18 = pMVar28->suspended_dummy;
  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;
  if ((uVar18 & 0x42) == 2) {
    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);
    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));
    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = &MStack_1d4;
        pMVar25 = unaff_s7;
        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&
             (ws = (MHD_Daemon *)&MStack_1d4.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 {
          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;
          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;
          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;
          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;
          psVar10 = (size_t *)ws;
        } while (ws != pMVar25);
        do {
          *psVar10 = 0;
          psVar10 = psVar10 + 1;
          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;
        } while (daemon != (MHD_Daemon *)psVar10);
        do {
          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;
          ppMVar11 = ppMVar11 + 1;
          puVar33 = (undefined1 *)0xffffffff;
        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);
        MStack_374 = -1;
        pMVar21 = ws;
        pMVar23 = daemon;
        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,
                              (fd_set *)daemon,&MStack_374,0x400);
        if (CONCAT31(extraout_var,_Var16) == 0) {
          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);
          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);
          goto LAB_0001c074;
        }
        if (MStack_374 != -1) break;
LAB_0001c4bc:
        pMVar23 = daemon;
        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,
                       (fd_set *)daemon);
        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);
        p = unaff_s7;
        pMVar21 = ws;
      }
      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&
         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {
        auStack_368._0_4_ = (MHD_AccessHandlerCallback)0x0;
        auStack_368._4_4_ = (void *)0x0;
      }
      p = unaff_s7;
      pMVar21 = ws;
      pMVar23 = daemon;
      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);
      if (-1 < iVar3) goto LAB_0001c4bc;
      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();
      daemon = (MHD_Daemon *)*puVar12;
    } while (daemon == (MHD_Daemon *)0x4);
    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;
    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);
    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);
    pMVar21 = daemon;
    MHD_DLOG(daemon_00,(char *)p);
  }
  else if ((uVar18 & 2) != 0) {
    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;
    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;
    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));
    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;
    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));
    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);
    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);
    MStack_1d4.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 &&
            (daemon = 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') {
          pMVar21 = (MHD_Daemon *)0xffffffff;
        }
        else {
          pMVar21 = (MHD_Daemon *)
                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);
        }
        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);
        if (iVar3 < 0) break;
        pMVar25 = unaff_s6;
        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);
        process_urh((MHD_UpgradeResponseHandle *)pMVar25);
      }
      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();
    } while (*piVar9 == 4);
    daemon = (MHD_Daemon *)connection_00->cleanup_head;
    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();
    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);
    MHD_DLOG(daemon,(char *)p);
  }
LAB_0001c074:
  MHD_connection_finish_forward_((MHD_Connection *)connection_00);
  pcVar37 = *(code **)(pcVar36 + 0x23698);
  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;
  (*pcVar37)(connection_00);
LAB_0001bd0c:
  if (pMStack_54 == (MHD_Daemon *)*piVar4) {
    return;
  }
  pcVar36 = *(code **)(pcVar36 + 0x23714);
  pcVar37 = internal_run_from_select;
  pMVar25 = pMStack_54;
  (*pcVar36)();
  piVar4 = *(int **)(pcVar36 + 0x22c64);
  iVar3 = (pMVar25->itc).fd;
  pMStackY_3d4 = (MHD_Daemon *)*piVar4;
  pMVar25->data_already_pending = false;
  pMStackY_3d0 = daemon;
  pMStackY_3cc = daemon_00;
  pMStackY_3c8 = pMVar29;
  uStackY_3c4 = uVar30;
  psStackY_3c0 = (size_t *)ws;
  puStackY_3bc = puVar33;
  pMStackY_3b8 = unaff_s6;
  pMStackY_3b4 = unaff_s7;
  pMStackY_3b0 = connection_00;
  pcStackY_3ac = pcVar37;
  if (iVar3 != -1) {
    iVar3 = (**(code **)(pcVar36 + 0x22c24))();
    uVar18 = (pMVar25->itc).fd;
    if ((int)uVar18 < 0) {
      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];
      pcVar37 = *(code **)(pcVar36 + 0x22c90);
    }
    else {
      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];
      pcVar37 = *(code **)(pcVar36 + 0x22c90);
    }
    if (uVar17 != 0) {
      (*pcVar37)(uVar18,auStackY_3e0,8);
    }
  }
  uVar18 = pMVar25->listen_fd;
  if ((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)) {
    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);
    if ((int)uVar18 < 0) {
      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];
    }
    else {
      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];
    }
    if (uVar18 != 0) {
      MHD_accept_connection(pMVar25);
    }
  }
  if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&
     (pMVar25->connections_tail != (MHD_Connection *)0x0)) {
    iVar3 = *(int *)(pcVar36 + 0x229fc);
    pMVar28 = pMVar25->connections_tail;
    do {
      uVar18 = pMVar28->socket_fd;
      pMVar26 = pMVar28->prev;
      if (uVar18 != 0xffffffff) {
        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);
        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));
        p_Var19 = (&p->default_handler)[iVar13];
        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);
        p_Var22 = (&pMVar21->default_handler)[iVar13];
        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);
        (*(code *)(iVar3 + -0x7974))
                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,
                   ((uint)unaff_s7 & (uint)p_Var22) != 0,
                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);
      }
      pMVar28 = pMVar26;
    } while (pMVar26 != (MHD_Connection *)0x0);
  }
  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {
    unaff_s7 = (MHD_Daemon *)0x1;
    pMVar15 = pMVar25->urh_tail;
    do {
      pMVar27 = pMVar15->prev;
      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);
      process_urh(pMVar15);
      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&
          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {
        MHD_connection_finish_forward_(pMVar15->connection);
        pcVar37 = *(code **)(pcVar36 + 0x22bb4);
        pMVar15->clean_ready = true;
        (*pcVar37)(pMVar15->connection);
      }
      pMVar15 = pMVar27;
    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);
  }
  MHD_cleanup_connections(pMVar25);
  if (pMStackY_3d4 == (MHD_Daemon *)*piVar4) {
    return;
  }
  pcVar36 = *(code **)(pcVar36 + 0x22c30);
  pMVar25 = pMStackY_3d4;
  (*pcVar36)();
  MVar35 = pMVar25->options;
  MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION;
  pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE);
  MVar14 = MVar35;
  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {
    unaff_s7 = (MHD_Daemon *)0x1;
    pMVar15 = pMVar25->urh_tail;
    do {
      pMVar27 = pMVar15->prev;
      process_urh(pMVar15);
      MHD_connection_finish_forward_(pMVar15->connection);
      pMVar15->clean_ready = true;
      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);
      pMVar15 = pMVar27;
    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);
    p = (MHD_Daemon *)0x0;
    MVar14 = pMVar25->options;
  }
  if ((MVar14 & 0x2000) != MHD_NO_FLAG) {
    pMVar25->resuming = true;
    resume_suspended_connections(pMVar25);
  }
  pMVar32 = &pMVar25->cleanup_connection_mutex;
  iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);
  uVar30 = 0x191e;
  if (iVar3 != 0) goto LAB_0001cf0c;
  if (pMVar31 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;
  pMVar28 = pMVar25->suspended_connections_tail;
  if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cba0;
  pMVar15 = pMVar28->urh;
  MVar35 = MVar35 & MHD_USE_SSL;
  if (pMVar15 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;
  p = (MHD_Daemon *)0x1;
  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;
  if (MVar34 == MHD_NO_FLAG) {
    if (pMVar15->was_closed == false) goto LAB_0001cdb0;
    pMVar28->urh->was_closed = SUB41(p,0);
    goto LAB_0001cd9c;
  }
  if (pMVar15->clean_ready == false) {
    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);
    goto LAB_0001cb54;
  }
  if (pMVar15->was_closed == false) goto LAB_0001cdb0;
  pMVar28->urh->was_closed = SUB41(p,0);
LAB_0001cb4c:
  pMVar28->resuming = SUB41(p,0);
  pMVar25->resuming = SUB41(p,0);
LAB_0001cb54:
  pMVar28 = pMVar28->prev;
  if (pMVar28 != (MHD_Connection *)0x0) {
    pMVar15 = pMVar28->urh;
    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar30 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))
                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,
                 *(int *)(pcVar36 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar30 = 0x1948;
    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);
  }
LAB_0001cba0:
  pMVar28 = pMVar25->connections_tail;
  pcVar37 = *(code **)(pcVar36 + 0x22918);
  if (pMVar28 != (MHD_Connection *)0x0) {
    do {
      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);
      pMVar28 = pMVar28->prev;
    } while (pMVar28 != (MHD_Connection *)0x0);
    pcVar37 = *(code **)(pcVar36 + 0x22918);
    pMVar28 = (MHD_Connection *)0x0;
    if ((MVar34 != MHD_NO_FLAG) &&
       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {
      p = (MHD_Daemon *)0x1;
      do {
        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {
          pMVar28 = pMVar28->prev;
          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;
        }
        iVar3 = (*pcVar37)(pMVar32);
        if (iVar3 != 0) {
          uVar30 = 0x195e;
          goto LAB_0001cd58;
        }
        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);
        if (iVar3 != 0) goto LAB_0001cf30;
        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);
        if (iVar3 != 0) {
          uVar30 = 0x1961;
          goto LAB_0001cf0c;
        }
        pMVar28->thread_joined = true;
        pMVar28 = pMVar25->connections_tail;
        pcVar37 = *(code **)(pcVar36 + 0x22918);
      } while (pMVar28 != (MHD_Connection *)0x0);
    }
  }
LAB_0001cc48:
  iVar3 = (*pcVar37)(pMVar32);
  if (iVar3 == 0) {
    if (pMVar31 != (MHD_mutex_ *)0x0) {
      pMVar25->resuming = true;
      resume_suspended_connections(pMVar25);
    }
    do {
      pMVar28 = pMVar25->connections_tail;
      while( true ) {
        if (pMVar28 == (MHD_Connection *)0x0) {
          MHD_cleanup_connections(pMVar25);
          return;
        }
        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&
           (pMVar28->thread_joined == false)) goto LAB_0001cf30;
        p = pMVar28->daemon;
        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;
        MHD_connection_mark_closed_(pMVar28);
        pMVar28 = pMVar25->connections_tail;
      }
      pMVar31 = &p->cleanup_connection_mutex;
      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);
      if (iVar3 != 0) {
        do {
          uVar30 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))
                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,
                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))
                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);
        } while( true );
      }
      pMVar26 = pMVar28->prevX;
      pMVar20 = pMVar28->nextX;
      if (pMVar28->connection_timeout == p->connection_timeout) {
        if (pMVar26 == (MHD_Connection *)0x0) {
          p->normal_timeout_head = pMVar20;
        }
        else {
          pMVar26->nextX = pMVar20;
        }
        pMVar26 = pMVar28->nextX;
        pMVar20 = pMVar28->prevX;
        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;
        p->normal_timeout_tail = pMVar20;
LAB_0001ccf4:
        pMVar26 = pMVar28->prev;
        pMVar20 = pMVar28->next;
        pMVar28->nextX = (MHD_Connection *)0x0;
        pMVar28->prevX = (MHD_Connection *)0x0;
        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        p->connections_head = pMVar20;
        pMVar26 = pMVar28->next;
        pMVar20 = pMVar28->prev;
        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        p->connections_tail = pMVar20;
        pMVar28->next = (MHD_Connection *)0x0;
        pMVar28->prev = (MHD_Connection *)0x0;
        pMVar26 = p->cleanup_head;
        pMVar28->next = pMVar26;
        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        p->cleanup_tail = pMVar28;
      }
      else {
        if (pMVar26 == (MHD_Connection *)0x0) {
          p->manual_timeout_head = pMVar20;
        }
        else {
          pMVar26->nextX = pMVar20;
        }
        pMVar26 = pMVar28->nextX;
        pMVar20 = pMVar28->prevX;
        if (pMVar26 != (MHD_Connection *)0x0) {
LAB_0001ccf0:
          pMVar26->prevX = pMVar20;
          goto LAB_0001ccf4;
        }
        p->manual_timeout_tail = pMVar20;
        pMVar28->nextX = (MHD_Connection *)0x0;
        pMVar28->prevX = (MHD_Connection *)0x0;
        pMVar26 = pMVar28->prev;
        pMVar20 = pMVar28->next;
        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pMVar26->next = pMVar20;
        pMVar26 = pMVar28->next;
        pMVar20 = pMVar28->prev;
        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pMVar26->prev = pMVar20;
        pMVar28->next = (MHD_Connection *)0x0;
        pMVar28->prev = (MHD_Connection *)0x0;
        pMVar26 = p->cleanup_head;
        pMVar28->next = pMVar26;
        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        pMVar26->prev = pMVar28;
      }
      pcVar37 = *(code **)(pcVar36 + 0x22918);
      p->cleanup_head = pMVar28;
      iVar3 = (*pcVar37)(pMVar31);
    } while (iVar3 == 0);
    uVar30 = 0x11dd;
  }
  else {
    uVar30 = 0x196b;
  }
LAB_0001cd58:
  pMVar15 = (MHD_UpgradeResponseHandle *)
            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))
                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,
                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (pMVar15->was_closed == false) {
LAB_0001cdb0:
    MHD_DLOG(pMVar25,(char *)unaff_s7);
  }
  pMVar28->urh->was_closed = SUB41(p,0);
  if (MVar34 == MHD_NO_FLAG) {
LAB_0001cd9c:
    MHD_connection_finish_forward_(pMVar28);
  }
  goto LAB_0001cb4c;
}



/* WARNING: Type propagation algorithm not settling */

int MHD_resume_connection(int param_1)

{
  undefined *puVar1;
  int iVar2;
  int *piVar3;
  int ******ppppppiVar4;
  undefined4 uVar5;
  int *******pppppppiVar6;
  int *******pppppppiVar7;
  undefined4 *puVar8;
  int ******ppppppiVar9;
  uint uVar10;
  int *******pppppppiVar11;
  int *****pppppiVar12;
  int *******pppppppiVar13;
  int *******pppppppiVar14;
  int *******pppppppiVar15;
  int iVar16;
  int *******pppppppiVar17;
  int *****pppppiVar18;
  int unaff_s1;
  int ******ppppppiVar19;
  undefined4 *puVar20;
  int unaff_s2;
  int *******pppppppiVar21;
  undefined4 uVar22;
  int *******pppppppiVar23;
  int *******pppppppiVar24;
  int iVar25;
  int ******ppppppiVar26;
  int ****ppppiVar27;
  uint uVar28;
  int *******unaff_s6;
  uint uVar29;
  int *******unaff_s7;
  code *pcVar30;
  code *pcVar31;
  undefined1 auStack_3e0 [12];
  int iStack_3d4;
  int *******pppppppiStack_3d0;
  int ******ppppppiStack_3cc;
  int *******pppppppiStack_3c8;
  undefined4 uStack_3c4;
  int *******pppppppiStack_3c0;
  int ******ppppppiStack_3bc;
  int *******pppppppiStack_3b8;
  int *******pppppppiStack_3b4;
  int *******pppppppiStack_3b0;
  code *pcStack_3ac;
  int *******local_398;
  undefined4 local_394;
  code *local_390;
  int *local_384;
  int *******local_380;
  int *******local_37c;
  int local_378;
  int ******local_374;
  int *******local_370;
  undefined4 local_36c;
  int ******local_368;
  undefined4 local_364;
  int ******local_35c;
  undefined4 local_358;
  int ******local_354 [32];
  int ******local_2d4 [32];
  int ******local_254 [32];
  int ******local_1d4 [32];
  int ******local_154 [32];
  int ******local_d4 [32];
  int ******local_54;
  int local_50;
  int local_4c;
  int local_48;
  
  iVar16 = *(int *)(param_1 + 0x18);
  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,
               PTR_DAT_0003f05c + -0x3514);
    param_1 = unaff_s1;
  }
  else {
    unaff_s2 = iVar16 + 0xac;
    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    if (iVar2 != 0) goto LAB_0001bb7c;
    *(undefined1 *)(param_1 + 0xfc) = 1;
    *(undefined1 *)(iVar16 + 0xe3) = 1;
    iVar2 = (*(code *)puVar1)(unaff_s2);
    if (iVar2 == 0) {
      iVar2 = -1;
      if ((*(int *)(iVar16 + 0xdc) != -1) &&
         (iVar2 = (*(code *)PTR_write_0003f220)
                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {
        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();
        iVar2 = *piVar3;
        if (iVar2 != 0xb) {
          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);
          return iVar16;
        }
      }
      return iVar2;
    }
  }
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,
             PTR_DAT_0003f05c + -0x51b8);
LAB_0001bb7c:
  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;
  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);
  pcVar30 = *(code **)PTR_DAT_0003f070;
  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);
  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);
  local_390 = pcVar30 + 0x2b48c;
  local_384 = *(int **)(pcVar30 + 0x23748);
  ppppppiVar26 = (int ******)&local_35c;
  uVar22 = 0x8000001f;
  ppppppiVar19 = pppppppiVar11[6];
  local_54 = (int ******)*local_384;
  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);
  local_50 = iVar16;
  local_4c = param_1;
  local_48 = unaff_s2;
  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();
  ppppppiVar9 = pppppppiVar11[0x2d];
  pppppppiVar11[0x17] = ppppppiVar4;
  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);
  pppppppiVar23 = (int *******)0x0;
LAB_0001bc2c:
  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);
  if (pppppppiVar17 != (int *******)0x0) {
joined_r0x0001bdcc:
    if (ppppppiVar9 != (int ******)0x13) {
      pppppppiVar13 = (int *******)0x3;
      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {
        pppppppiVar13 = (int *******)0x1;
      }
      FUN_00014148(pppppppiVar11);
    }
LAB_0001bdfc:
    FUN_00015e38(pppppppiVar11);
LAB_0001bcc4:
    if (pppppppiVar11[9] != (int ******)0x0) {
      (**(code **)(local_390 + -0x7d58))();
      pppppppiVar11[9] = (int ******)0x0;
    }
    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {
      pppppppiVar13 = (int *******)0x1;
      (**(code **)(local_390 + -0x7ec8))();
    }
    pppppppiVar14 = (int *******)0x8;
    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {
      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);
      iVar16 = (**(code **)(local_390 + -0x7e10))();
      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);
        FUN_00020df0(ppppppiVar19);
      }
    }
    goto LAB_0001bd0c;
  }
  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;
  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);
  unaff_s7 = (int *******)ppppppiVar19[0x3c];
  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {
    ppppppiVar4 = (int ******)ppppppiVar19[0x37];
    pppppppiVar23 = unaff_s6;
    if (pppppppiVar21 == (int *******)0x0) {
      local_380 = local_354;
      pppppppiVar13 = local_380;
      do {
        *pppppppiVar13 = (int ******)0x0;
        pppppppiVar13 = pppppppiVar13 + 1;
      } while (pppppppiVar13 != local_2d4);
      pppppppiVar15 = (int *******)0x400;
      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);
      if (iVar16 == 0) goto LAB_0001c364;
      pppppppiVar15 = (int *******)0x0;
      local_398 = (int *******)0x0;
      pppppppiVar13 = local_380;
      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);
      if (-1 < iVar16) goto LAB_0001c380;
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar14 = (int *******)*puVar8;
      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;
      pppppppiVar23 = (int *******)pppppppiVar11[6];
      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);
      pppppppiVar17 = pppppppiVar14;
      pppppppiVar21 = pppppppiVar23;
LAB_0001c18c:
      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);
      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);
      ppppppiVar9 = pppppppiVar11[0x2d];
      goto joined_r0x0001bdcc;
    }
    pppppppiVar13 = (int *******)0x1;
    local_358 = 0x10000;
    local_35c = ppppppiVar4;
    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);
    if (iVar16 < 0) {
      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
      if (*piVar3 != 4) {
LAB_0001bd98:
        pppppppiVar17 = (int *******)pppppppiVar11[6];
        uVar5 = (**(code **)(local_390 + -0x7ddc))();
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);
        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);
        ppppppiVar9 = pppppppiVar11[0x2d];
        goto joined_r0x0001bdcc;
      }
LAB_0001c13c:
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    else {
LAB_0001c380:
      pppppppiVar13 = &local_368;
      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    goto LAB_0001bc2c;
  }
  if (pppppppiVar23 != (int *******)0x0) {
    FUN_0001478c(pppppppiVar11);
    FUN_00015e38(pppppppiVar11);
  }
  ppppppiVar4 = pppppppiVar11[0x2e];
  pppppppiVar23 = (int *******)0x0;
  if ((ppppppiVar4 != (int ******)0x2) &&
     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {
    if (0 < (int)unaff_s7) {
      iVar16 = FUN_0002186c();
      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {
        unaff_s7 = (int *******)0x0;
      }
      else {
        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));
      }
      ppppppiVar4 = pppppppiVar11[0x2e];
      local_370 = unaff_s7;
      goto LAB_0001bc90;
    }
    pppppppiVar14 = (int *******)0x0;
    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;
LAB_0001be20:
    unaff_s6 = local_2d4;
    pppppppiVar6 = local_354;
    do {
      *pppppppiVar6 = (int ******)0x0;
      pppppppiVar6 = pppppppiVar6 + 1;
    } while (unaff_s6 != pppppppiVar6);
    unaff_s7 = local_254;
    pppppppiVar6 = unaff_s6;
    do {
      *pppppppiVar6 = (int ******)0x0;
      pppppppiVar6 = pppppppiVar6 + 1;
      pppppppiVar7 = unaff_s7;
    } while (unaff_s7 != pppppppiVar6);
    do {
      *pppppppiVar7 = (int ******)0x0;
      pppppppiVar7 = pppppppiVar7 + 1;
    } while (local_1d4 != pppppppiVar7);
    local_378 = -1;
    if (ppppppiVar4 == (int ******)0x1) {
      pppppppiVar15 = (int *******)0x400;
      local_380 = pppppppiVar14;
      local_37c = local_354;
      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);
      if (iVar16 == 0) goto LAB_0001c364;
LAB_0001c1ec:
      iVar16 = local_378 + 1;
      pppppppiVar6 = local_37c;
      pppppppiVar14 = local_380;
    }
    else if (ppppppiVar4 == (int ******)0x0) {
      pppppppiVar15 = (int *******)0x400;
      local_380 = local_354;
      local_37c = pppppppiVar14;
      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);
      if (iVar16 == 0) goto LAB_0001c364;
      iVar16 = local_378 + 1;
      pppppppiVar6 = local_380;
      pppppppiVar14 = local_37c;
    }
    else {
      if (ppppppiVar4 == (int ******)0x2) {
        pppppppiVar15 = (int *******)0x400;
        local_380 = pppppppiVar14;
        local_37c = local_354;
        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);
        if (iVar16 != 0) goto LAB_0001c1ec;
LAB_0001c364:
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);
        FUN_00020df0(pppppppiVar11[6]);
        goto LAB_0001bcc4;
      }
      iVar16 = 0;
      pppppppiVar6 = local_354;
      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;
    }
    pppppppiVar13 = pppppppiVar6;
    pppppppiVar15 = unaff_s7;
    local_398 = pppppppiVar14;
    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);
    if (iVar16 < 0) {
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar14 = (int *******)*puVar8;
      unaff_s6 = pppppppiVar14;
      if (pppppppiVar14 != (int *******)0x4) {
        pppppppiVar23 = (int *******)pppppppiVar11[6];
        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);
        pppppppiVar17 = pppppppiVar23;
        goto LAB_0001c18c;
      }
LAB_0001c1b0:
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    else {
      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);
      unaff_s6 = (int *******)
                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);
      iVar16 = (**(code **)(local_390 + -0x7d84))();
      unaff_s7 = (int *******)
                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);
      iVar16 = (**(code **)(local_390 + -0x7d84))();
      pppppppiVar15 =
           (int *******)
           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);
      pppppppiVar13 = unaff_s6;
      pppppppiVar14 = unaff_s7;
      iVar16 = FUN_0001868c(pppppppiVar11);
      if (iVar16 == 0) goto LAB_0001bcc4;
      ppppppiVar9 = pppppppiVar11[0x2d];
      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  local_370 = (int *******)0x0;
LAB_0001bc90:
  local_36c = 0;
  pppppppiVar14 = (int *******)&local_370;
  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;
LAB_0001bc98:
  local_35c = pppppppiVar11[0x29];
  local_358 = 0;
  if (ppppppiVar4 != (int ******)0x1) {
    if (ppppppiVar4 == (int ******)0x0) {
      local_358 = 0x30000;
      goto LAB_0001bd54;
    }
    if (ppppppiVar4 == (int ******)0x2) {
      local_358 = 0x20000;
      goto LAB_0001bd54;
    }
    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;
    goto LAB_0001bcc4;
  }
  local_358 = 0x60000;
LAB_0001bd54:
  if (pppppppiVar14 == (int *******)0x0) {
    iVar16 = -1;
  }
  else {
    iVar16 = (int)local_370 * 1000;
  }
  pppppppiVar13 = (int *******)0x1;
  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);
  if (iVar16 < 0) {
    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
    if (*piVar3 != 4) goto LAB_0001bd98;
    goto LAB_0001c1b0;
  }
  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);
  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);
  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);
  iVar16 = FUN_0001868c(pppppppiVar11);
  if (iVar16 == 0) goto LAB_0001bcc4;
  ppppppiVar9 = pppppppiVar11[0x2d];
  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;
LAB_0001c01c:
  if ((ppppppiVar19[0x12] != (int *****)0x0) &&
     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {
    pppppppiVar14 = pppppppiVar11 + 0xb;
    pppppppiVar13 = pppppppiVar11;
    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);
  }
  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;
  unaff_s6 = (int *******)pppppppiVar11[0x38];
  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {
    uVar22 = *(undefined4 *)(local_390 + -0x7fac);
    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);
    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = local_1d4;
        pppppppiVar23 = unaff_s7;
        if ((((unaff_s6[8] == (int ******)0x0) &&
             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&
            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))
        goto LAB_0001c074;
        do {
          pppppppiVar24 = local_154;
          *pppppppiVar23 = (int ******)0x0;
          pppppppiVar23 = pppppppiVar23 + 1;
          pppppppiVar17 = local_d4;
          pppppppiVar13 = pppppppiVar24;
        } while (pppppppiVar24 != pppppppiVar23);
        do {
          *pppppppiVar13 = (int ******)0x0;
          pppppppiVar13 = pppppppiVar13 + 1;
          pppppppiVar23 = pppppppiVar17;
        } while (pppppppiVar17 != pppppppiVar13);
        do {
          *pppppppiVar23 = (int ******)0x0;
          pppppppiVar23 = pppppppiVar23 + 1;
          ppppppiVar26 = (int ******)0xffffffff;
        } while (pppppppiVar23 != &local_54);
        local_394 = 0x400;
        local_398 = &local_374;
        local_374 = (int ******)0xffffffff;
        pppppppiVar14 = pppppppiVar24;
        pppppppiVar15 = pppppppiVar17;
        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);
        if (iVar16 == 0) {
          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);
          FUN_00020df0(pppppppiVar11[6]);
          goto LAB_0001c074;
        }
        if (local_374 != (int ******)0xffffffff) break;
LAB_0001c4bc:
        pppppppiVar15 = pppppppiVar17;
        FUN_00018420(unaff_s6);
        FUN_00018878(unaff_s6);
        pppppppiVar13 = unaff_s7;
        pppppppiVar14 = pppppppiVar24;
      }
      local_398 = (int *******)0x0;
      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&
         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {
        local_398 = &local_368;
        local_368 = (int ******)0x0;
        local_364 = 0;
      }
      pppppppiVar13 = unaff_s7;
      pppppppiVar14 = pppppppiVar24;
      pppppppiVar15 = pppppppiVar17;
      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);
      if (-1 < iVar16) goto LAB_0001c4bc;
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar17 = (int *******)*puVar8;
    } while (pppppppiVar17 == (int *******)0x4);
    ppppppiVar19 = pppppppiVar11[6];
    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);
    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);
    pppppppiVar14 = pppppppiVar17;
    FUN_00020df0(ppppppiVar19);
  }
  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {
    pppppppiVar13 = local_d4;
    local_d4[1] = (int ******)0x0;
    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);
    local_d4[3] = (int ******)0x0;
    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);
    uVar22 = *(undefined4 *)(local_390 + -0x7fac);
    local_d4[0] = (int ******)(*unaff_s6)[0x29];
    local_d4[2] = unaff_s6[0x10];
    do {
      while( true ) {
        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&
           ((unaff_s6[10] == (int ******)0x0 &&
            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;
        FUN_00017b40(unaff_s6);
        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {
          pppppppiVar14 = (int *******)0xffffffff;
        }
        else {
          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);
        }
        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);
        if (iVar16 < 0) break;
        FUN_00017c40(unaff_s6,pppppppiVar13);
        FUN_00018878();
      }
      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
    } while (*piVar3 == 4);
    pppppppiVar17 = (int *******)pppppppiVar11[6];
    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();
    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);
    FUN_00020df0(pppppppiVar17);
  }
LAB_0001c074:
  FUN_00014600(pppppppiVar11);
  pcVar30 = *(code **)(local_390 + -0x7df4);
  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;
  (*pcVar30)(pppppppiVar11);
LAB_0001bd0c:
  if (local_54 == (int ******)*local_384) {
    return 0;
  }
  pcVar30 = *(code **)(local_390 + -0x7d78);
  pcVar31 = FUN_0001c688;
  ppppppiVar4 = local_54;
  (*pcVar30)();
  piVar3 = *(int **)(pcVar30 + 0x22c64);
  iStack_3d4 = *piVar3;
  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;
  pppppppiStack_3d0 = pppppppiVar17;
  ppppppiStack_3cc = ppppppiVar19;
  pppppppiStack_3c8 = pppppppiVar21;
  uStack_3c4 = uVar22;
  pppppppiStack_3c0 = pppppppiVar24;
  ppppppiStack_3bc = ppppppiVar26;
  pppppppiStack_3b8 = unaff_s6;
  pppppppiStack_3b4 = unaff_s7;
  pppppppiStack_3b0 = pppppppiVar11;
  pcStack_3ac = pcVar31;
  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {
    iVar16 = (**(code **)(pcVar30 + 0x22c24))();
    pppppiVar12 = ppppppiVar4[0x37];
    if ((int)pppppiVar12 < 0) {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
      pcVar31 = *(code **)(pcVar30 + 0x22c90);
    }
    else {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
      pcVar31 = *(code **)(pcVar30 + 0x22c90);
    }
    if (uVar10 != 0) {
      (*pcVar31)(pppppiVar12,auStack_3e0,8);
    }
  }
  pppppiVar12 = ppppppiVar4[0x31];
  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {
    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);
    if ((int)pppppiVar12 < 0) {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
    }
    else {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
    }
    if (uVar10 != 0) {
      FUN_0001afec(ppppppiVar4);
    }
  }
  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {
    iVar16 = *(int *)(pcVar30 + 0x229fc);
    pppppiVar12 = ppppppiVar4[3];
    do {
      ppppiVar27 = pppppiVar12[0x29];
      pppppiVar18 = (int *****)pppppiVar12[3];
      if (ppppiVar27 != (int ****)0xffffffff) {
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));
        ppppppiVar9 = pppppppiVar13[iVar2];
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        ppppppiVar19 = pppppppiVar14[iVar2];
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        (*(code *)(iVar16 + -0x7974))
                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,
                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,
                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);
      }
      pppppiVar12 = pppppiVar18;
    } while (pppppiVar18 != (int *****)0x0);
  }
  if (ppppppiVar4[0x42] != (int *****)0x0) {
    unaff_s7 = (int *******)0x1;
    pppppiVar12 = ppppppiVar4[0x42];
    do {
      pppppiVar18 = (int *****)pppppiVar12[2];
      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);
      FUN_00018878(pppppiVar12);
      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&
          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {
        FUN_00014600(*pppppiVar12);
        pcVar31 = *(code **)(pcVar30 + 0x22bb4);
        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;
        (*pcVar31)(*pppppiVar12);
      }
      pppppiVar12 = pppppiVar18;
    } while (pppppiVar18 != (int *****)0x0);
  }
  FUN_0001ab80(ppppppiVar4);
  if (iStack_3d4 == *piVar3) {
    return 1;
  }
  pcVar30 = *(code **)(pcVar30 + 0x22c30);
  iVar16 = iStack_3d4;
  (*pcVar30)();
  uVar29 = *(uint *)(iVar16 + 0xf8);
  uVar28 = uVar29 & 4;
  pppppppiVar23 = (int *******)(uVar29 & 0x8000);
  uVar10 = uVar29;
  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {
    unaff_s7 = (int *******)0x1;
    puVar8 = *(undefined4 **)(iVar16 + 0x108);
    do {
      puVar20 = (undefined4 *)puVar8[2];
      FUN_00018878(puVar8);
      FUN_00014600(*puVar8);
      *(undefined1 *)((int)puVar8 + 0x51) = 1;
      (**(code **)(pcVar30 + 0x22818))(*puVar8);
      puVar8 = puVar20;
    } while (puVar20 != (undefined4 *)0x0);
    pppppppiVar13 = (int *******)0x0;
    uVar10 = *(uint *)(iVar16 + 0xf8);
  }
  if ((uVar10 & 0x2000) != 0) {
    *(undefined1 *)(iVar16 + 0xe3) = 1;
    FUN_00018028(iVar16);
  }
  iVar25 = iVar16 + 0xac;
  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);
  uVar22 = 0x191e;
  if (iVar2 != 0) goto LAB_0001cf0c;
  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;
  ppppppiVar4 = *(int *******)(iVar16 + 0x14);
  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;
  pppppiVar12 = ppppppiVar4[0x38];
  uVar29 = uVar29 & 2;
  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;
  pppppppiVar13 = (int *******)0x1;
  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (uVar29 == 0) goto LAB_0001cd7c;
  if (uVar28 == 0) {
    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
    goto LAB_0001cd9c;
  }
  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {
    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);
    goto LAB_0001cb54;
  }
  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
LAB_0001cb4c:
  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;
  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;
LAB_0001cb54:
  ppppppiVar4 = (int ******)ppppppiVar4[3];
  if (ppppppiVar4 != (int ******)0x0) {
    pppppiVar12 = ppppppiVar4[0x38];
    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar22 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,
                 *(int *)(pcVar30 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar22 = 0x1948;
    } while (*(int *)(iVar16 + 0x10) != 0);
  }
LAB_0001cba0:
  ppppppiVar4 = *(int *******)(iVar16 + 0xc);
  pcVar31 = *(code **)(pcVar30 + 0x22918);
  if (ppppppiVar4 != (int ******)0x0) {
    do {
      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);
      ppppppiVar4 = (int ******)ppppppiVar4[3];
    } while (ppppppiVar4 != (int ******)0x0);
    pcVar31 = *(code **)(pcVar30 + 0x22918);
    ppppppiVar4 = (int ******)0x0;
    if ((uVar28 != 0) &&
       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {
      pppppppiVar13 = (int *******)0x1;
      do {
        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')
        {
          ppppppiVar4 = (int ******)ppppppiVar4[3];
          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;
        }
        iVar2 = (*pcVar31)(iVar25);
        if (iVar2 != 0) {
          uVar22 = 0x195e;
          goto LAB_0001cd58;
        }
        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);
        if (iVar2 != 0) goto LAB_0001cf30;
        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);
        if (iVar2 != 0) {
          uVar22 = 0x1961;
          goto LAB_0001cf0c;
        }
        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;
        ppppppiVar4 = *(int *******)(iVar16 + 0xc);
        pcVar31 = *(code **)(pcVar30 + 0x22918);
      } while (ppppppiVar4 != (int ******)0x0);
    }
  }
LAB_0001cc48:
  iVar2 = (*pcVar31)(iVar25);
  if (iVar2 == 0) {
    if (pppppppiVar23 != (int *******)0x0) {
      *(undefined1 *)(iVar16 + 0xe3) = 1;
      FUN_00018028(iVar16);
    }
    do {
      ppppppiVar4 = *(int *******)(iVar16 + 0xc);
      while( true ) {
        if (ppppppiVar4 == (int ******)0x0) {
          iVar16 = FUN_0001ab80(iVar16);
          return iVar16;
        }
        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))
        goto LAB_0001cf30;
        pppppppiVar13 = (int *******)ppppppiVar4[6];
        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;
        FUN_000140b4(ppppppiVar4);
        ppppppiVar4 = *(int *******)(iVar16 + 0xc);
      }
      pppppppiVar23 = pppppppiVar13 + 0x2b;
      FUN_00014148(ppppppiVar4,3);
      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);
      if (iVar2 != 0) {
        do {
          uVar22 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,
                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);
        } while( true );
      }
      pppppiVar12 = ppppppiVar4[5];
      ppppppiVar9 = (int ******)ppppppiVar4[4];
      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar13[0xc] = ppppppiVar9;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar9;
        }
        pppppiVar12 = ppppppiVar4[4];
        ppppppiVar9 = (int ******)ppppppiVar4[5];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;
        pppppppiVar13[0xd] = ppppppiVar9;
LAB_0001ccf4:
        pppppiVar12 = ppppppiVar4[3];
        ppppppiVar9 = (int ******)ppppppiVar4[2];
        ppppppiVar4[4] = (int *****)0x0;
        ppppppiVar4[5] = (int *****)0x0;
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        pppppppiVar13[2] = ppppppiVar9;
        pppppiVar12 = ppppppiVar4[2];
        ppppppiVar9 = (int ******)ppppppiVar4[3];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        pppppppiVar13[3] = ppppppiVar9;
        ppppppiVar4[2] = (int *****)0x0;
        ppppppiVar4[3] = (int *****)0x0;
        ppppppiVar9 = pppppppiVar13[6];
        ppppppiVar4[2] = (int *****)ppppppiVar9;
        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        pppppppiVar13[7] = ppppppiVar4;
      }
      else {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar13[0xe] = ppppppiVar9;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar9;
        }
        pppppiVar12 = ppppppiVar4[4];
        ppppppiVar9 = (int ******)ppppppiVar4[5];
        if (pppppiVar12 != (int *****)0x0) {
LAB_0001ccf0:
          pppppiVar12[5] = (int ****)ppppppiVar9;
          goto LAB_0001ccf4;
        }
        pppppppiVar13[0xf] = ppppppiVar9;
        ppppppiVar4[4] = (int *****)0x0;
        ppppppiVar4[5] = (int *****)0x0;
        pppppiVar12 = ppppppiVar4[3];
        ppppppiVar9 = (int ******)ppppppiVar4[2];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pppppiVar12[2] = (int ****)ppppppiVar9;
        pppppiVar12 = ppppppiVar4[2];
        ppppppiVar9 = (int ******)ppppppiVar4[3];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pppppiVar12[3] = (int ****)ppppppiVar9;
        ppppppiVar4[2] = (int *****)0x0;
        ppppppiVar4[3] = (int *****)0x0;
        ppppppiVar9 = pppppppiVar13[6];
        ppppppiVar4[2] = (int *****)ppppppiVar9;
        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        ppppppiVar9[3] = (int *****)ppppppiVar4;
      }
      pcVar31 = *(code **)(pcVar30 + 0x22918);
      pppppppiVar13[6] = ppppppiVar4;
      iVar2 = (*pcVar31)(pppppppiVar23);
    } while (iVar2 == 0);
    uVar22 = 0x11dd;
  }
  else {
    uVar22 = 0x196b;
  }
LAB_0001cd58:
  pppppiVar12 = (int *****)
                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                          (**(undefined4 **)(pcVar30 + 0x22644),
                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,
                           *(int *)(pcVar30 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (*(char *)(pppppiVar12 + 0x14) == '\0') {
LAB_0001cdb0:
    FUN_00020df0(iVar16,unaff_s7);
  }
  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
  if (uVar28 == 0) {
LAB_0001cd9c:
    FUN_00014600(ppppppiVar4);
  }
  goto LAB_0001cb4c;
}


lui gp,0x3
addiu gp,gp,-0x4a08
addu gp,gp,t9
addiu sp,sp,-0x28
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
lw s0,0x18(a0)
lw v0,0xf8(s0)
andi v0,v0,0x2000
beq v0,zero,0x0001bb2c
_lw t9,-0x7d88(gp)
addiu s2,s0,0xac
or s1,a0,zero
jalr t9
_or a0,s2,zero
bne v0,zero,0x0001bb7c
_lw gp,0x10(sp)
li v0,0x1
lw t9,-0x7cf4(gp)
or a0,s2,zero
sb v0,0xfc(s1)
jalr t9
_sb v0,0xe3(s0)
bne v0,zero,0x0001bb54
_lw gp,0x10(sp)
lw a0,0xdc(s0)
li v0,-0x1
bne a0,v0,0x0001bad0
_lw a1,-0x7fd4(gp)
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
li a2,0x8
lw t9,-0x7e10(gp)
jalr t9
_addiu a1,a1,-0x28d8
bgtz v0,0x0001bab8
_lw gp,0x10(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0xb
lw v0,0x0(v0)
beq v0,v1,0x0001bab8
_lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
or a0,s0,zero
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
addiu a1,a1,-0x34cc
lw s0,0x18(sp)
lw t9,-0x7fc4(gp)
b 0x00020df0
_addiu sp,sp,0x28
lw v0,-0x7fc8(gp)
li a2,0xaff
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x3514
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
lw v0,-0x7fc8(gp)
li a2,0xb06
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 v0,-0x7fc8(gp)
li a2,0xb01
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
lui gp,0x3
addiu gp,gp,-0x4b74
addu gp,gp,t9
addiu sp,sp,-0x380
lw v0,-0x7d44(gp)
lw t9,-0x7d4c(gp)
sw gp,0x18(sp)
sw s8,0x378(sp)
or s8,a0,zero
sw s5,0x36c(sp)
addiu s5,sp,0x4c
sw s4,0x368(sp)
sw s3,0x364(sp)
lui s3,0x8000
sw ra,0x37c(sp)
sw s7,0x374(sp)
addiu s3,s3,0x1f
sw s6,0x370(sp)
sw s2,0x360(sp)
sw s1,0x35c(sp)
sw s0,0x358(sp)
sw v0,0x24(sp)
lw s1,0x18(a0)
lw v0,0x0(v0)
lw s2,0xf8(s1)
sw v0,0x354(sp)
jalr t9
_andi s2,s2,0x40
or a0,zero,zero
lw gp,0x18(sp)
lw v1,0xb4(s8)
sw v0,0x5c(s8)
lw s4,-0x7fac(gp)
addiu s4,s4,-0x7974
lbu s0,0xe0(s1)
andi s0,s0,0xff
bne s0,zero,0x0001bdc8
_li v0,0x13
beq v1,v0,0x0001bdfc
_lw t9,-0x7fb4(gp)
lbu s6,0xf5(s8)
beq s6,zero,0x0001bc5c
_lw s7,0xf0(s1)
lw v0,0xe0(s8)
beq v0,zero,0x0001c0f0
_nop
bne a0,zero,0x0001bf8c
_lw t9,-0x7f90(gp)
lw a0,0xb8(s8)
li v0,0x2
beq a0,v0,0x0001bc88
_addiu t2,sp,0x38
lbu v0,0xf4(s8)
beq v0,zero,0x0001be0c
_nop
bne a0,zero,0x0001be0c
_nop
sw zero,0x38(sp)
sw zero,0x3c(sp)
beq s2,zero,0x0001be20
_addiu t1,sp,0x54
lw v1,0xa4(s8)
li v0,0x1
sw zero,0x50(sp)
beq a0,v0,0x0001c2e8
_sw v1,0x4c(sp)
beq a0,zero,0x0001c2f4
_li v0,0x2
beq a0,v0,0x0001bd50
_li v0,0x3
bne a0,v0,0x0001bd54
_nop
lw a0,0x24(s8)
beq a0,zero,0x0001bce0
_lw t9,-0x7d58(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw zero,0x24(s8)
lw a0,0xa4(s8)
li v0,-0x1
beq a0,v0,0x0001bcfc
_lw t9,-0x7ec8(gp)
jalr t9
_li a1,0x1
lw gp,0x18(sp)
lw a0,0xdc(s1)
li v0,-0x1
bne a0,v0,0x0001c0a0
_li a2,0x8
lw v1,0x24(sp)
or v0,zero,zero
lw a0,0x354(sp)
lw v1,0x0(v1)
bne a0,v1,0x0001c67c
_lw ra,0x37c(sp)
lw s8,0x378(sp)
lw s7,0x374(sp)
lw s6,0x370(sp)
lw s5,0x36c(sp)
lw s4,0x368(sp)
lw s3,0x364(sp)
lw s2,0x360(sp)
lw s1,0x35c(sp)
lw s0,0x358(sp)
jr ra
_addiu sp,sp,0x380
sh a0,0x50(sp)
beq t2,zero,0x0001c1bc
_li v0,0x3e8
lw a2,0x38(sp)
mul a2,a2,v0
lw t9,-0x7dac(gp)
li a1,0x1
jalr t9
_or a0,s5,zero
bgez v0,0x0001bfe0
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw a0,0x0(v0)
beq a0,v1,0x0001c1b0
_lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw s0,0x18(s8)
lw gp,0x18(sp)
or a2,v0,zero
or a0,s0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3450
lw gp,0x18(sp)
lw v1,0xb4(s8)
li v0,0x13
beq v1,v0,0x0001bdfc
_lw t9,-0x7fb4(gp)
lbu v0,0xe0(s1)
li v1,0x1
li a1,0x3
lw t9,-0x7fbc(gp)
or a0,s8,zero
andi v0,v0,0xff
bal 0x00014148
_movz a1,v1,v0
lw gp,0x18(sp)
lw t9,-0x7fb4(gp)
bal 0x00015e38
_or a0,s8,zero
b 0x0001bcc4
_lw gp,0x18(sp)
bgtz s7,0x0001bfac
_lw t9,-0x7fcc(gp)
bne s2,zero,0x0001bc98
_or t2,zero,zero
addiu t1,sp,0x54
addiu s6,sp,0xd4
or v0,t1,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne s6,v0,0x0001be28
_nop
addiu s7,sp,0x154
or v0,s6,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne s7,v0,0x0001be40
_addiu v1,sp,0x1d4
or v0,s7,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne v1,v0,0x0001be54
_nop
li v1,-0x1
li v0,0x1
beq a0,v0,0x0001c33c
_sw v1,0x30(sp)
beq a0,zero,0x0001c300
_li v0,0x2
beq a0,v0,0x0001c1c4
_li v0,0x3
beq a0,v0,0x0001bcc4
_or a0,zero,zero
lw t9,-0x7d6c(gp)
or a3,s7,zero
sw t2,0x10(sp)
or a2,s6,zero
jalr t9
_or a1,t1,zero
bltz v0,0x0001c14c
_lw gp,0x18(sp)
lw t9,-0x7d84(gp)
jalr t9
_lw a0,0xa4(s8)
lw a0,0xa4(s8)
and a1,a0,s3
bltz a1,0x0001c208
_lw gp,0x18(sp)
sll v1,v0,0x2
lw t9,-0x7d84(gp)
addiu v0,sp,0x358
addu v1,v0,v1
li v0,0x1
lw s6,-0x304(v1)
sllv v0,v0,a1
and v0,v0,s6
jalr t9
_sltu s6,zero,v0
lw a0,0xa4(s8)
and a1,a0,s3
bltz a1,0x0001c22c
_lw gp,0x18(sp)
sll v1,v0,0x2
lw t9,-0x7d84(gp)
addiu v0,sp,0x358
addu v1,v0,v1
li v0,0x1
lw s7,-0x284(v1)
sllv v0,v0,a1
and v0,v0,s7
jalr t9
_sltu s7,zero,v0
lw v1,0xa4(s8)
and v1,v1,s3
bltz v1,0x0001c21c
_li a0,-0x20
sll a0,v0,0x2
addiu v0,sp,0x358
or a2,s7,zero
addu a0,v0,a0
li v0,0x1
or a1,s6,zero
sllv v1,v0,v1
lw v0,-0x204(a0)
or t9,s4,zero
or a0,s8,zero
and v1,v1,v0
bal 0x0001868c
_sltu a3,zero,v1
beq v0,zero,0x0001bcc4
_lw gp,0x18(sp)
lw v1,0xb4(s8)
li v0,0x14
beq v1,v0,0x0001c01c
_or a0,s0,zero
b 0x0001bc2c
_nop
bal 0x0001478c
_or a0,s8,zero
lw gp,0x18(sp)
lw t9,-0x7fb4(gp)
bal 0x00015e38
_or a0,s8,zero
b 0x0001bc64
_lw gp,0x18(sp)
bal 0x0002186c
_nop
lw v1,0x94(s8)
subu v0,v0,v1
slt v1,s7,v0
bne v1,zero,0x0001c200
_lw gp,0x18(sp)
subu s7,s7,v0
lw a0,0xb8(s8)
addiu t2,sp,0x38
sw s7,0x38(sp)
b 0x0001bc90
_sw zero,0x3c(sp)
lh a1,0x52(sp)
or a0,s8,zero
or t9,s4,zero
andi a2,a1,0xffff
andi a3,a2,0xba
ext a2,a2,0x2,0x1
sltu a3,zero,a3
bal 0x0001868c
_andi a1,a1,0x1
beq v0,zero,0x0001bcc4
_lw gp,0x18(sp)
lw v1,0xb4(s8)
li v0,0x14
bne v1,v0,0x0001bc2c
_or a0,s0,zero
lw t9,0x48(s1)
beq t9,zero,0x0001c048
_nop
lbu v0,0xa0(s8)
beq v0,zero,0x0001c048
_or a3,zero,zero
lw a0,0x4c(s1)
addiu a2,s8,0x2c
jalr t9
_or a1,s8,zero
lw gp,0x18(sp)
lw v0,0x18(s8)
li v1,0x2
sb zero,0xa0(s8)
lw v0,0xf8(v0)
andi a0,v0,0x42
beq a0,v1,0x0001c3a8
_lw s6,0xe0(s8)
andi v0,v0,0x2
bne v0,zero,0x0001c53c
_nop
lw t9,-0x7f8c(gp)
bal 0x00014600
_or a0,s8,zero
li v1,0x1
lw gp,0x18(sp)
or a0,s8,zero
lw v0,0xe0(s8)
lw t9,-0x7df4(gp)
jalr t9
_sb v1,0x51(v0)
b 0x0001bd0c
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7e10(gp)
jalr t9
_addiu a1,a1,-0x28d8
bgtz v0,0x0001bd0c
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0xb
lw v0,0x0(v0)
beq v0,v1,0x0001bd0c
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s1,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x341c
b 0x0001bd0c
_lw gp,0x18(sp)
beq s2,zero,0x0001c240
_lw a0,0xdc(s1)
lw t9,-0x7dac(gp)
lui v0,0x1
li a2,-0x1
sw a0,0x4c(sp)
li a1,0x1
sw v0,0x50(sp)
jalr t9
_or a0,s5,zero
bgez v0,0x0001c380
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw a0,0x0(v0)
bne a0,v1,0x0001bd98
_lw gp,0x18(sp)
or s0,s6,zero
lw v1,0xb4(s8)
b 0x0001bc2c
_or a0,s0,zero
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw s6,0x0(v0)
beq s6,v1,0x0001c1b0
_lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
or a0,s6,zero
jalr t9
_lw s0,0x18(s8)
or a2,s6,zero
lw gp,0x18(sp)
or a3,v0,zero
or a0,s0,zero
lw t9,-0x7fc4(gp)
lw a1,-0x7fd4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3470
li v0,0x13
lw v1,0xb4(s8)
bne v1,v0,0x0001bdd4
_lw gp,0x18(sp)
b 0x0001bdfc
_lw t9,-0x7fb4(gp)
lw v1,0xb4(s8)
b 0x0001bc2c
_or a0,s0,zero
b 0x0001bd64
_li a2,-0x1
lw t9,-0x7fd0(gp)
li a3,0x400
lw a0,0xa4(s8)
addiu a2,sp,0x30
sw t1,0x2c(sp)
or a1,s7,zero
bal 0x00022130
_sw t2,0x28(sp)
beq v0,zero,0x0001c364
_lw gp,0x18(sp)
lw a0,0x30(sp)
lw t2,0x28(sp)
lw t1,0x2c(sp)
b 0x0001be8c
_addiu a0,a0,0x1
b 0x0001bfcc
_or s7,zero,zero
addiu a1,a1,-0x1
li v1,-0x20
or a1,a1,v1
b 0x0001bec8
_addiu a1,a1,0x1
addiu v1,v1,-0x1
or v1,v1,a0
b 0x0001bf38
_addiu v1,v1,0x1
addiu a1,a1,-0x1
li v1,-0x20
or a1,a1,v1
b 0x0001bf00
_addiu a1,a1,0x1
addiu t1,sp,0x54
addiu v1,sp,0xd4
or v0,t1,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne v0,v1,0x0001c24c
_lw t9,-0x7fd0(gp)
li a3,0x400
or a2,zero,zero
sw t1,0x28(sp)
bal 0x00022130
_or a1,t1,zero
lw gp,0x18(sp)
beq v0,zero,0x0001c364
_lw t1,0x28(sp)
lw a0,0xdc(s1)
or a3,zero,zero
lw t9,-0x7d6c(gp)
or a2,zero,zero
sw zero,0x10(sp)
or a1,t1,zero
jalr t9
_addiu a0,a0,0x1
bgez v0,0x0001c380
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw s0,0x0(v0)
beq s0,v1,0x0001c13c
_lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
or a0,s0,zero
jalr t9
_lw s2,0x18(s8)
or a2,s0,zero
lw gp,0x18(sp)
or a3,v0,zero
or a0,s2,zero
b 0x0001c18c
_lw t9,-0x7fc4(gp)
li v0,0x6
b 0x0001bd54
_sh v0,0x50(sp)
li v0,0x3
b 0x0001bd54
_sh v0,0x50(sp)
lw t9,-0x7fd0(gp)
li a3,0x400
lw a0,0xa4(s8)
addiu a2,sp,0x30
sw t2,0x2c(sp)
or a1,t1,zero
bal 0x00022130
_sw t1,0x28(sp)
beq v0,zero,0x0001c364
_lw gp,0x18(sp)
lw a0,0x30(sp)
lw t1,0x28(sp)
lw t2,0x2c(sp)
b 0x0001be8c
_addiu a0,a0,0x1
lw t9,-0x7fd0(gp)
li a3,0x400
lw a0,0xa4(s8)
addiu a2,sp,0x30
sw t1,0x2c(sp)
or a1,s6,zero
bal 0x00022130
_sw t2,0x28(sp)
bne v0,zero,0x0001c1ec
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
bal 0x00020df0
_addiu a1,a1,-0x348c
b 0x0001bcc4
_lw gp,0x18(sp)
lw t9,-0x7d18(gp)
li a2,0x8
lw a0,0xdc(s1)
addiu a1,sp,0x40
jalr t9
_or s0,s6,zero
or a0,s0,zero
lw gp,0x18(sp)
b 0x0001bc2c
_lw v1,0xb4(s8)
lw s2,-0x7fd8(gp)
lw s1,-0x7fac(gp)
lw s3,-0x7fac(gp)
addiu s2,s2,0x7e20
addiu s1,s1,-0x7be0
lw v0,0x20(s6)
bne v0,zero,0x0001c3ec
_addiu s7,sp,0x1d4
lw v0,0x24(s6)
bne v0,zero,0x0001c3f0
_addiu s4,sp,0x254
lw v0,0x28(s6)
bne v0,zero,0x0001c3f4
_or v0,s7,zero
lw v0,0x2c(s6)
beq v0,zero,0x0001c074
_lw t9,-0x7f8c(gp)
addiu s4,sp,0x254
or v0,s7,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne s4,v0,0x0001c3f4
_addiu s0,sp,0x2d4
or v0,s4,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne s0,v0,0x0001c408
_addiu v1,sp,0x354
or v0,s0,zero
sw zero,0x0(v0)
addiu v0,v0,0x4
bne v0,v1,0x0001c41c
_li s5,-0x1
li v0,0x400
sw v0,0x14(sp)
addiu v0,sp,0x34
or a3,s0,zero
sw s5,0x34(sp)
sw v0,0x10(sp)
or a2,s4,zero
or a1,s7,zero
or t9,s2,zero
bal 0x00017e20
_or a0,s6,zero
beq v0,zero,0x0001c660
_lw gp,0x18(sp)
lw a0,0x34(sp)
beq a0,s5,0x0001c4bc
_nop
lbu v0,0xf4(s8)
beq v0,zero,0x0001c498
_or v0,zero,zero
lw v0,0x28(s6)
lw v1,0x20(s6)
sltu v0,v0,v1
beq v0,zero,0x0001c498
_or v0,zero,zero
addiu v0,sp,0x40
sw zero,0x40(sp)
sw zero,0x44(sp)
lw t9,-0x7d6c(gp)
addiu a0,a0,0x1
sw v0,0x10(sp)
or a3,s0,zero
or a2,s4,zero
jalr t9
_or a1,s7,zero
bltz v0,0x0001c4e8
_lw gp,0x18(sp)
or a0,s6,zero
or a3,s0,zero
or a2,s4,zero
or t9,s1,zero
bal 0x00018420
_or a1,s7,zero
addiu t9,s3,-0x7788
bal 0x00018878
_or a0,s6,zero
b 0x0001c3bc
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw s0,0x0(v0)
beq s0,v1,0x0001c3bc
_lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
or a0,s0,zero
jalr t9
_lw s1,0x18(s8)
or a2,s0,zero
lw gp,0x18(sp)
or a3,v0,zero
or a0,s1,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3470
b 0x0001c070
_lw gp,0x18(sp)
addiu s0,sp,0x2d4
sw zero,0x2d4(sp)
lw s2,-0x7fd8(gp)
lw s1,-0x7fd8(gp)
sw zero,0x4(s0)
sw zero,0x8(s0)
addiu s2,s2,0x7b40
sw zero,0xc(s0)
addiu s1,s1,0x7c40
lw v0,0x0(s6)
lw s3,-0x7fac(gp)
lw v0,0xa4(v0)
sw v0,0x2d4(sp)
lw v0,0x40(s6)
sw v0,0x2dc(sp)
lw v0,0x20(s6)
bne v0,zero,0x0001c5a8
_or a1,s0,zero
lw v0,0x24(s6)
bne v0,zero,0x0001c5ac
_or t9,s2,zero
lw v0,0x28(s6)
bne v0,zero,0x0001c5ac
_nop
lw v0,0x2c(s6)
beq v0,zero,0x0001c074
_lw t9,-0x7f8c(gp)
or t9,s2,zero
bal 0x00017b40
_or a0,s6,zero
lbu v0,0xf4(s8)
beq v0,zero,0x0001c634
_lw gp,0x18(sp)
lw a2,0x28(s6)
lw v0,0x20(s6)
sltu a2,a2,v0
addiu a2,a2,-0x1
lw t9,-0x7dac(gp)
li a1,0x2
jalr t9
_or a0,s0,zero
bgez v0,0x0001c63c
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x4
lw a0,0x0(v0)
beq a0,v1,0x0001c578
_lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw s0,0x18(s8)
lw gp,0x18(sp)
or a2,v0,zero
or a0,s0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3450
b 0x0001c070
_lw gp,0x18(sp)
b 0x0001c5d0
_li a2,-0x1
or a0,s6,zero
or t9,s1,zero
bal 0x00017c40
_or a1,s0,zero
addiu t9,s3,-0x7788
bal 0x00018878
_nop
b 0x0001c578
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
bal 0x00020df0
_addiu a1,a1,-0x3434
b 0x0001c070
_lw gp,0x18(sp)
lw t9,-0x7d78(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint MHD_resume_connection(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}\n\n" comment (function_definition "int MHD_resume_connection(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "MHD_resume_connection(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int ******ppppppiVar4;" primitive_type (pointer_declarator "******ppppppiVar4" * (pointer_declarator "*****ppppppiVar4" * (pointer_declarator "****ppppppiVar4" * (pointer_declarator "***ppppppiVar4" * (pointer_declarator "**ppppppiVar4" * (pointer_declarator "*ppppppiVar4" * identifier)))))) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *******pppppppiVar6;" primitive_type (pointer_declarator "*******pppppppiVar6" * (pointer_declarator "******pppppppiVar6" * (pointer_declarator "*****pppppppiVar6" * (pointer_declarator "****pppppppiVar6" * (pointer_declarator "***pppppppiVar6" * (pointer_declarator "**pppppppiVar6" * (pointer_declarator "*pppppppiVar6" * 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 "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int ******ppppppiVar9;" primitive_type (pointer_declarator "******ppppppiVar9" * (pointer_declarator "*****ppppppiVar9" * (pointer_declarator "****ppppppiVar9" * (pointer_declarator "***ppppppiVar9" * (pointer_declarator "**ppppppiVar9" * (pointer_declarator "*ppppppiVar9" * identifier)))))) ;) (declaration "uint uVar10;" type_identifier 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 *******pppppppiVar13;" primitive_type (pointer_declarator "*******pppppppiVar13" * (pointer_declarator "******pppppppiVar13" * (pointer_declarator "*****pppppppiVar13" * (pointer_declarator "****pppppppiVar13" * (pointer_declarator "***pppppppiVar13" * (pointer_declarator "**pppppppiVar13" * (pointer_declarator "*pppppppiVar13" * 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 "int *******pppppppiVar15;" primitive_type (pointer_declarator "*******pppppppiVar15" * (pointer_declarator "******pppppppiVar15" * (pointer_declarator "*****pppppppiVar15" * (pointer_declarator "****pppppppiVar15" * (pointer_declarator "***pppppppiVar15" * (pointer_declarator "**pppppppiVar15" * (pointer_declarator "*pppppppiVar15" * identifier))))))) ;) (declaration "int iVar16;" primitive_type 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 *****pppppiVar18;" primitive_type (pointer_declarator "*****pppppiVar18" * (pointer_declarator "****pppppiVar18" * (pointer_declarator "***pppppiVar18" * (pointer_declarator "**pppppiVar18" * (pointer_declarator "*pppppiVar18" * identifier))))) ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int ******ppppppiVar19;" primitive_type (pointer_declarator "******ppppppiVar19" * (pointer_declarator "*****ppppppiVar19" * (pointer_declarator "****ppppppiVar19" * (pointer_declarator "***ppppppiVar19" * (pointer_declarator "**ppppppiVar19" * (pointer_declarator "*ppppppiVar19" * identifier)))))) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int *******pppppppiVar21;" primitive_type (pointer_declarator "*******pppppppiVar21" * (pointer_declarator "******pppppppiVar21" * (pointer_declarator "*****pppppppiVar21" * (pointer_declarator "****pppppppiVar21" * (pointer_declarator "***pppppppiVar21" * (pointer_declarator "**pppppppiVar21" * (pointer_declarator "*pppppppiVar21" * identifier))))))) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "int *******pppppppiVar23;" primitive_type (pointer_declarator "*******pppppppiVar23" * (pointer_declarator "******pppppppiVar23" * (pointer_declarator "*****pppppppiVar23" * (pointer_declarator "****pppppppiVar23" * (pointer_declarator "***pppppppiVar23" * (pointer_declarator "**pppppppiVar23" * (pointer_declarator "*pppppppiVar23" * 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 iVar25;" primitive_type identifier ;) (declaration "int ******ppppppiVar26;" primitive_type (pointer_declarator "******ppppppiVar26" * (pointer_declarator "*****ppppppiVar26" * (pointer_declarator "****ppppppiVar26" * (pointer_declarator "***ppppppiVar26" * (pointer_declarator "**ppppppiVar26" * (pointer_declarator "*ppppppiVar26" * identifier)))))) ;) (declaration "int ****ppppiVar27;" primitive_type (pointer_declarator "****ppppiVar27" * (pointer_declarator "***ppppiVar27" * (pointer_declarator "**ppppiVar27" * (pointer_declarator "*ppppiVar27" * identifier)))) ;) (declaration "uint uVar28;" 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 uVar29;" 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 *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "undefined1 auStack_3e0 [12];" type_identifier (array_declarator "auStack_3e0 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_3d4;" primitive_type identifier ;) (declaration "int *******pppppppiStack_3d0;" primitive_type (pointer_declarator "*******pppppppiStack_3d0" * (pointer_declarator "******pppppppiStack_3d0" * (pointer_declarator "*****pppppppiStack_3d0" * (pointer_declarator "****pppppppiStack_3d0" * (pointer_declarator "***pppppppiStack_3d0" * (pointer_declarator "**pppppppiStack_3d0" * (pointer_declarator "*pppppppiStack_3d0" * identifier))))))) ;) (declaration "int ******ppppppiStack_3cc;" primitive_type (pointer_declarator "******ppppppiStack_3cc" * (pointer_declarator "*****ppppppiStack_3cc" * (pointer_declarator "****ppppppiStack_3cc" * (pointer_declarator "***ppppppiStack_3cc" * (pointer_declarator "**ppppppiStack_3cc" * (pointer_declarator "*ppppppiStack_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 "undefined4 uStack_3c4;" type_identifier identifier ;) (declaration "int *******pppppppiStack_3c0;" primitive_type (pointer_declarator "*******pppppppiStack_3c0" * (pointer_declarator "******pppppppiStack_3c0" * (pointer_declarator "*****pppppppiStack_3c0" * (pointer_declarator "****pppppppiStack_3c0" * (pointer_declarator "***pppppppiStack_3c0" * (pointer_declarator "**pppppppiStack_3c0" * (pointer_declarator "*pppppppiStack_3c0" * 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 "int *******pppppppiStack_3b4;" primitive_type (pointer_declarator "*******pppppppiStack_3b4" * (pointer_declarator "******pppppppiStack_3b4" * (pointer_declarator "*****pppppppiStack_3b4" * (pointer_declarator "****pppppppiStack_3b4" * (pointer_declarator "***pppppppiStack_3b4" * (pointer_declarator "**pppppppiStack_3b4" * (pointer_declarator "*pppppppiStack_3b4" * identifier))))))) ;) (declaration "int *******pppppppiStack_3b0;" primitive_type (pointer_declarator "*******pppppppiStack_3b0" * (pointer_declarator "******pppppppiStack_3b0" * (pointer_declarator "*****pppppppiStack_3b0" * (pointer_declarator "****pppppppiStack_3b0" * (pointer_declarator "***pppppppiStack_3b0" * (pointer_declarator "**pppppppiStack_3b0" * (pointer_declarator "*pppppppiStack_3b0" * identifier))))))) ;) (declaration "code *pcStack_3ac;" type_identifier (pointer_declarator "*pcStack_3ac" * identifier) ;) (declaration "int *******local_398;" primitive_type (pointer_declarator "*******local_398" * (pointer_declarator "******local_398" * (pointer_declarator "*****local_398" * (pointer_declarator "****local_398" * (pointer_declarator "***local_398" * (pointer_declarator "**local_398" * (pointer_declarator "*local_398" * identifier))))))) ;) (declaration "undefined4 local_394;" type_identifier identifier ;) (declaration "code *local_390;" type_identifier (pointer_declarator "*local_390" * identifier) ;) (declaration "int *local_384;" primitive_type (pointer_declarator "*local_384" * identifier) ;) (declaration "int *******local_380;" primitive_type (pointer_declarator "*******local_380" * (pointer_declarator "******local_380" * (pointer_declarator "*****local_380" * (pointer_declarator "****local_380" * (pointer_declarator "***local_380" * (pointer_declarator "**local_380" * (pointer_declarator "*local_380" * identifier))))))) ;) (declaration "int *******local_37c;" primitive_type (pointer_declarator "*******local_37c" * (pointer_declarator "******local_37c" * (pointer_declarator "*****local_37c" * (pointer_declarator "****local_37c" * (pointer_declarator "***local_37c" * (pointer_declarator "**local_37c" * (pointer_declarator "*local_37c" * identifier))))))) ;) (declaration "int local_378;" primitive_type identifier ;) (declaration "int ******local_374;" primitive_type (pointer_declarator "******local_374" * (pointer_declarator "*****local_374" * (pointer_declarator "****local_374" * (pointer_declarator "***local_374" * (pointer_declarator "**local_374" * (pointer_declarator "*local_374" * identifier)))))) ;) (declaration "int *******local_370;" primitive_type (pointer_declarator "*******local_370" * (pointer_declarator "******local_370" * (pointer_declarator "*****local_370" * (pointer_declarator "****local_370" * (pointer_declarator "***local_370" * (pointer_declarator "**local_370" * (pointer_declarator "*local_370" * identifier))))))) ;) (declaration "undefined4 local_36c;" type_identifier identifier ;) (declaration "int ******local_368;" primitive_type (pointer_declarator "******local_368" * (pointer_declarator "*****local_368" * (pointer_declarator "****local_368" * (pointer_declarator "***local_368" * (pointer_declarator "**local_368" * (pointer_declarator "*local_368" * identifier)))))) ;) (declaration "undefined4 local_364;" type_identifier identifier ;) (declaration "int ******local_35c;" primitive_type (pointer_declarator "******local_35c" * (pointer_declarator "*****local_35c" * (pointer_declarator "****local_35c" * (pointer_declarator "***local_35c" * (pointer_declarator "**local_35c" * (pointer_declarator "*local_35c" * identifier)))))) ;) (declaration "undefined4 local_358;" type_identifier identifier ;) (declaration "int ******local_354 [32];" primitive_type (pointer_declarator "******local_354 [32]" * (pointer_declarator "*****local_354 [32]" * (pointer_declarator "****local_354 [32]" * (pointer_declarator "***local_354 [32]" * (pointer_declarator "**local_354 [32]" * (pointer_declarator "*local_354 [32]" * (array_declarator "local_354 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_2d4 [32];" primitive_type (pointer_declarator "******local_2d4 [32]" * (pointer_declarator "*****local_2d4 [32]" * (pointer_declarator "****local_2d4 [32]" * (pointer_declarator "***local_2d4 [32]" * (pointer_declarator "**local_2d4 [32]" * (pointer_declarator "*local_2d4 [32]" * (array_declarator "local_2d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_254 [32];" primitive_type (pointer_declarator "******local_254 [32]" * (pointer_declarator "*****local_254 [32]" * (pointer_declarator "****local_254 [32]" * (pointer_declarator "***local_254 [32]" * (pointer_declarator "**local_254 [32]" * (pointer_declarator "*local_254 [32]" * (array_declarator "local_254 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_1d4 [32];" primitive_type (pointer_declarator "******local_1d4 [32]" * (pointer_declarator "*****local_1d4 [32]" * (pointer_declarator "****local_1d4 [32]" * (pointer_declarator "***local_1d4 [32]" * (pointer_declarator "**local_1d4 [32]" * (pointer_declarator "*local_1d4 [32]" * (array_declarator "local_1d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_154 [32];" primitive_type (pointer_declarator "******local_154 [32]" * (pointer_declarator "*****local_154 [32]" * (pointer_declarator "****local_154 [32]" * (pointer_declarator "***local_154 [32]" * (pointer_declarator "**local_154 [32]" * (pointer_declarator "*local_154 [32]" * (array_declarator "local_154 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_d4 [32];" primitive_type (pointer_declarator "******local_d4 [32]" * (pointer_declarator "*****local_d4 [32]" * (pointer_declarator "****local_d4 [32]" * (pointer_declarator "***local_d4 [32]" * (pointer_declarator "**local_d4 [32]" * (pointer_declarator "*local_d4 [32]" * (array_declarator "local_d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_54;" primitive_type (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier)))))) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (expression_statement "iVar16 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar16 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(iVar16 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" (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,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" ( (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 + -0x3514" identifier + number_literal) ))) ;) (expression_statement "param_1 = unaff_s1;" (assignment_expression "param_1 = unaff_s1" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s2 = iVar16 + 0xac;" (assignment_expression "unaff_s2 = iVar16 + 0xac" identifier = (binary_expression "iVar16 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" (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 "(unaff_s2)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (iVar2 != 0) goto LAB_0001bb7c;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bb7c;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xfc)" * (cast_expression "(undefined1 *)(param_1 + 0xfc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)puVar1)(unaff_s2)" identifier = (call_expression "(*(code *)puVar1)(unaff_s2)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1))" ( (binary_expression "(*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar16 + 0xdc) != -1)" ( (binary_expression "*(int *)(iVar16 + 0xdc) != -1" (pointer_expression "*(int *)(iVar16 + 0xdc)" * (cast_expression "(int *)(iVar16 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xdc)" ( (binary_expression "iVar16 + 0xdc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" ( (comma_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1" (assignment_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar16 + 0xdc)" * (cast_expression "(int *)(iVar16 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xdc)" ( (binary_expression "iVar16 + 0xdc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) , (binary_expression "iVar2 < 1" identifier < number_literal)) ))) )) (compound_statement "{\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" { (expression_statement "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" if (parenthesized_expression "(iVar2 != 0xb)" ( (binary_expression "iVar2 != 0xb" identifier != number_literal) )) (compound_statement "{\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" { (expression_statement "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);" (assignment_expression "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" identifier = (call_expression "FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" identifier (argument_list "(iVar16,PTR_DAT_0003f05c + -0x34cc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x34cc" identifier + number_literal) )))) ;) (return_statement "return iVar16;" return identifier ;) })) })) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\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,0xb06,\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) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" statement_identifier : (expression_statement "pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" (assignment_expression "pppppppiVar11 = *(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 "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;)) (expression_statement "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);" (assignment_expression "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0)" identifier = (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x51e0)" ( (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) )))) ;) (expression_statement "pcVar30 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar30 = *(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 "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);" (assignment_expression "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0)" identifier = (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x40a0)" ( (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) )))) ;) (expression_statement "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);" (call_expression "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pppppppiVar11,pppppppiVar13,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_390 = pcVar30 + 0x2b48c;" (assignment_expression "local_390 = pcVar30 + 0x2b48c" identifier = (binary_expression "pcVar30 + 0x2b48c" identifier + number_literal)) ;) (expression_statement "local_384 = *(int **)(pcVar30 + 0x23748);" (assignment_expression "local_384 = *(int **)(pcVar30 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x23748)" * (cast_expression "(int **)(pcVar30 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x23748)" ( (binary_expression "pcVar30 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar26 = (int ******)&local_35c;" (assignment_expression "ppppppiVar26 = (int ******)&local_35c" identifier = (cast_expression "(int ******)&local_35c" ( (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 "&local_35c" & identifier))) ;) (expression_statement "uVar22 = 0x8000001f;" (assignment_expression "uVar22 = 0x8000001f" identifier = number_literal) ;) (expression_statement "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "local_54 = (int ******)*local_384;" (assignment_expression "local_54 = (int ******)*local_384" identifier = (cast_expression "(int ******)*local_384" ( (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 "*local_384" * identifier))) ;) (expression_statement "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);" (assignment_expression "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40)" identifier = (cast_expression "(int *******)((uint)ppppppiVar19[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)ppppppiVar19[0x3e] & 0x40)" ( (binary_expression "(uint)ppppppiVar19[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar19[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar19[0x3e]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "local_50 = iVar16;" (assignment_expression "local_50 = iVar16" identifier = identifier) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "local_48 = unaff_s2;" (assignment_expression "local_48 = unaff_s2" identifier = identifier) ;) (expression_statement "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();" (assignment_expression "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))()" identifier = (cast_expression "(int ******)(**(code **)(pcVar30 + 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 **)(pcVar30 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x23740))" ( (pointer_expression "**(code **)(pcVar30 + 0x23740)" * (pointer_expression "*(code **)(pcVar30 + 0x23740)" * (cast_expression "(code **)(pcVar30 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x23740)" ( (binary_expression "pcVar30 + 0x23740" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar11[0x17] = ppppppiVar4;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar4" (subscript_expression "pppppppiVar11[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7974)" ( (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(local_390 + -0x7fac)" * (cast_expression "(int *)(local_390 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (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  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" statement_identifier : (expression_statement "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" (assignment_expression "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38)" identifier = (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar19 + 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 *)(ppppppiVar19 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar19 + 0x38)" ( (binary_expression "ppppppiVar19 + 0x38" identifier + number_literal) ))))) ;)) (if_statement "if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(pppppppiVar17 != (int *******)0x0)" ( (binary_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)) )) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" { (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" statement_identifier : (if_statement "if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" if (parenthesized_expression "(ppppppiVar9 != (int ******)0x13)" ( (binary_expression "ppppppiVar9 != (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      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x3;" (assignment_expression "pppppppiVar13 = (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 *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }" if (parenthesized_expression "(*(char *)(ppppppiVar19 + 0x38) == '\0')" ( (binary_expression "*(char *)(ppppppiVar19 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar19 + 0x38)" * (cast_expression "(char *)(ppppppiVar19 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar19 + 0x38)" ( (binary_expression "ppppppiVar19 + 0x38" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppiVar13 = (int *******)0x1;\n      }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" statement_identifier : (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" { (expression_statement "(**(code **)(local_390 + -0x7d58))();" (call_expression "(**(code **)(local_390 + -0x7d58))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d58))" ( (pointer_expression "**(code **)(local_390 + -0x7d58)" * (pointer_expression "*(code **)(local_390 + -0x7d58)" * (cast_expression "(code **)(local_390 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d58)" ( (binary_expression "local_390 + -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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 **)(local_390 + -0x7ec8))();" (call_expression "(**(code **)(local_390 + -0x7ec8))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ec8))" ( (pointer_expression "**(code **)(local_390 + -0x7ec8)" * (pointer_expression "*(code **)(local_390 + -0x7ec8)" * (cast_expression "(code **)(local_390 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ec8)" ( (binary_expression "local_390 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pppppppiVar14 = (int *******)0x8;" (assignment_expression "pppppppiVar14 = (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 (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" if (parenthesized_expression "(ppppppiVar19[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar19[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar19[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      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x28d8)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7e10))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7e10))()" identifier = (call_expression "(**(code **)(local_390 + -0x7e10))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e10))" ( (pointer_expression "**(code **)(local_390 + -0x7e10)" * (pointer_expression "*(code **)(local_390 + -0x7e10)" * (cast_expression "(code **)(local_390 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e10)" ( (binary_expression "local_390 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" if (parenthesized_expression "((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb))" ( (binary_expression "(iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" ( (comma_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar3 != 0xb" (pointer_expression "*piVar3" * identifier) != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x341c)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" identifier (argument_list "(ppppppiVar19)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0001bd0c;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;" if (parenthesized_expression "(ppppppiVar9 == (int ******)0x13)" ( (binary_expression "ppppppiVar9 == (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 *******)ppppppiVar19[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar19[0x3c]" identifier = (cast_expression "(int *******)ppppppiVar19[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 "ppppppiVar19[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = 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    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "ppppppiVar4 = (int ******)ppppppiVar19[0x37];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar19[0x37]" identifier = (cast_expression "(int ******)ppppppiVar19[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 "ppppppiVar19[0x37]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar23 = unaff_s6;" (assignment_expression "pppppppiVar23 = unaff_s6" identifier = identifier) ;) (if_statement "if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" ( (binary_expression "pppppppiVar21 == (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      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "local_380 = local_354;" (assignment_expression "local_380 = local_354" identifier = identifier) ;) (expression_statement "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" identifier = identifier) ;) (do_statement "do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);" do (compound_statement "{\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      }" { (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" * 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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" identifier = (binary_expression "pppppppiVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar13 != local_2d4)" ( (binary_expression "pppppppiVar13 != local_2d4" identifier != identifier) )) ;) (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "iVar16 = FUN_00022130(ppppppiVar4,local_380,0);" (assignment_expression "iVar16 = FUN_00022130(ppppppiVar4,local_380,0)" identifier = (call_expression "FUN_00022130(ppppppiVar4,local_380,0)" identifier (argument_list "(ppppppiVar4,local_380,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "pppppppiVar15 = (int *******)0x0;" (assignment_expression "pppppppiVar15 = (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 "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (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 "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar19[0x37] + 1,local_380,0)" ( (binary_expression "(int)ppppppiVar19[0x37] + 1" (cast_expression "(int)ppppppiVar19[0x37]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppiVar19[0x37]" identifier [ number_literal ])) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar16) goto LAB_0001c380;" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (goto_statement "goto LAB_0001c380;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) (if_statement "if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pppppppiVar14 == (int *******)0x4)" ( (binary_expression "pppppppiVar14 == (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 "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14)" ( identifier ))))) ;) (expression_statement "pppppppiVar17 = pppppppiVar14;" (assignment_expression "pppppppiVar17 = pppppppiVar14" identifier = identifier) ;) (expression_statement "pppppppiVar21 = pppppppiVar23;" (assignment_expression "pppppppiVar21 = pppppppiVar23" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" statement_identifier : (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);" (call_expression "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14)" identifier (argument_list "(pppppppiVar23,pppppppiVar13,pppppppiVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 "local_358 = 0x10000;" (assignment_expression "local_358 = 0x10000" identifier = number_literal) ;) (expression_statement "local_35c = ppppppiVar4;" (assignment_expression "local_35c = ppppppiVar4" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar26,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar3 != 4)" ( (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];" statement_identifier : (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (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 "uVar5 = (**(code **)(local_390 + -0x7ddc))();" (assignment_expression "uVar5 = (**(code **)(local_390 + -0x7ddc))()" identifier = (call_expression "(**(code **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);" (call_expression "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5)" identifier (argument_list "(pppppppiVar17,pppppppiVar13,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" else (compound_statement "{\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (labeled_statement "LAB_0001c380:\n      pppppppiVar13 = &local_368;" statement_identifier : (expression_statement "pppppppiVar13 = &local_368;" (assignment_expression "pppppppiVar13 = &local_368" identifier = (pointer_expression "&local_368" & identifier)) ;)) (expression_statement "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);" (call_expression "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8)" (parenthesized_expression "(**(code **)(local_390 + -0x7d18))" ( (pointer_expression "**(code **)(local_390 + -0x7d18)" * (pointer_expression "*(code **)(local_390 + -0x7d18)" * (cast_expression "(code **)(local_390 + -0x7d18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d18)" ( (binary_expression "local_390 + -0x7d18" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar19[0x37],pppppppiVar13,8)" ( (subscript_expression "ppppppiVar19[0x37]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" if (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" ( (binary_expression "pppppppiVar23 != (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 "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (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 ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))))" ( (binary_expression "(ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar4 != (int ******)0x2)" ( (binary_expression "ppppppiVar4 != (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' || (ppppppiVar4 != (int ******)0x0)))" ( (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (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 "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = 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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "iVar16 = FUN_0002186c();" (assignment_expression "iVar16 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" if (parenthesized_expression "((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25])" ( (binary_expression "(int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar16 - (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 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" else (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" { (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]))" identifier = (cast_expression "(int *******)((int)unaff_s7 - (iVar16 - (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 - (iVar16 - (int)pppppppiVar11[0x25]))" ( (binary_expression "(int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(iVar16 - (int)pppppppiVar11[0x25])" ( (binary_expression "iVar16 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ]))) ))) )))) ;) }))) (expression_statement "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "local_370 = unaff_s7;" (assignment_expression "local_370 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (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)) ;) (if_statement "if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pppppppiVar21 != (int *******)0x0)" ( (binary_expression "pppppppiVar21 != (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 = local_2d4;" statement_identifier : (expression_statement "unaff_s6 = local_2d4;" (assignment_expression "unaff_s6 = local_2d4" identifier = identifier) ;)) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" identifier = identifier) ;) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);" do (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    }" { (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" * 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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" identifier = (binary_expression "pppppppiVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s6 != pppppppiVar6)" ( (binary_expression "unaff_s6 != pppppppiVar6" identifier != identifier) )) ;) (expression_statement "unaff_s7 = local_254;" (assignment_expression "unaff_s7 = local_254" identifier = identifier) ;) (expression_statement "pppppppiVar6 = unaff_s6;" (assignment_expression "pppppppiVar6 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);" do (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    }" { (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" * 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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" identifier = (binary_expression "pppppppiVar6 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar7 = unaff_s7;" (assignment_expression "pppppppiVar7 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pppppppiVar6)" ( (binary_expression "unaff_s7 != pppppppiVar6" identifier != identifier) )) ;) (do_statement "do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != 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 "(local_1d4 != pppppppiVar7)" ( (binary_expression "local_1d4 != pppppppiVar7" identifier != identifier) )) ;) (expression_statement "local_378 = -1;" (assignment_expression "local_378 = -1" identifier = number_literal) ;) (if_statement "if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x1)" ( (binary_expression "ppppppiVar4 == (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" identifier = identifier) ;) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s6,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1ec:\n      iVar16 = local_378 + 1;" statement_identifier : (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" identifier = (binary_expression "local_378 + 1" identifier + number_literal)) ;)) (expression_statement "pppppppiVar6 = local_37c;" (assignment_expression "pppppppiVar6 = local_37c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = local_380;" (assignment_expression "pppppppiVar14 = local_380" identifier = identifier) ;) }) (else_clause "else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" else (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = local_354;" (assignment_expression "local_380 = local_354" identifier = identifier) ;) (expression_statement "local_37c = pppppppiVar14;" (assignment_expression "local_37c = pppppppiVar14" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],local_354,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" identifier = (binary_expression "local_378 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar6 = local_380;" (assignment_expression "pppppppiVar6 = local_380" identifier = identifier) ;) (expression_statement "pppppppiVar14 = local_37c;" (assignment_expression "pppppppiVar14 = local_37c" identifier = identifier) ;) }) (else_clause "else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" else (compound_statement "{\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" { (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" ( (binary_expression "ppppppiVar4 == (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        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" identifier = identifier) ;) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s7,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 != 0) goto LAB_0001c1ec;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001c1ec;" goto statement_identifier ;)) (labeled_statement "LAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" statement_identifier : (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x348c)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -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_0001bcc4;" goto statement_identifier ;) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" identifier = identifier) ;) (if_statement "if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x3)" ( (binary_expression "ppppppiVar4 == (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 ;)) }))))) (expression_statement "pppppppiVar13 = pppppppiVar6;" (assignment_expression "pppppppiVar13 = pppppppiVar6" identifier = identifier) ;) (expression_statement "pppppppiVar15 = unaff_s7;" (assignment_expression "pppppppiVar15 = unaff_s7" identifier = identifier) ;) (expression_statement "local_398 = pppppppiVar14;" (assignment_expression "local_398 = pppppppiVar14" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar16,pppppppiVar13,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) (expression_statement "unaff_s6 = pppppppiVar14;" (assignment_expression "unaff_s6 = pppppppiVar14" identifier = identifier) ;) (if_statement "if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" if (parenthesized_expression "(pppppppiVar14 != (int *******)0x4)" ( (binary_expression "pppppppiVar14 != (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        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" { (expression_statement "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14)" ( identifier ))))) ;) (expression_statement "pppppppiVar17 = pppppppiVar23;" (assignment_expression "pppppppiVar17 = pppppppiVar23" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" else (compound_statement "{\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" { (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -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)local_354[iVar16]) != 0);" (assignment_expression "unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 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)local_354[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]" (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)local_354[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_354[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);" (assignment_expression "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 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)local_2d4[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]" (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)local_2d4[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_2d4[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);" (assignment_expression "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 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)local_254[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]" (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)local_254[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_254[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar13 = unaff_s6;" (assignment_expression "pppppppiVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;" if (parenthesized_expression "(ppppppiVar9 == (int ******)0x14)" ( (binary_expression "ppppppiVar9 == (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 "local_370 = (int *******)0x0;" (assignment_expression "local_370 = (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  local_36c = 0;" statement_identifier : (expression_statement "local_36c = 0;" (assignment_expression "local_36c = 0" identifier = number_literal) ;)) (expression_statement "pppppppiVar14 = (int *******)&local_370;" (assignment_expression "pppppppiVar14 = (int *******)&local_370" identifier = (cast_expression "(int *******)&local_370" ( (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 "&local_370" & identifier))) ;) (if_statement "if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" ( (binary_expression "pppppppiVar21 == (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  local_35c = pppppppiVar11[0x29];" statement_identifier : (expression_statement "local_35c = pppppppiVar11[0x29];" (assignment_expression "local_35c = pppppppiVar11[0x29]" identifier = (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) ;)) (expression_statement "local_358 = 0;" (assignment_expression "local_358 = 0" identifier = number_literal) ;) (if_statement "if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x1)" ( (binary_expression "ppppppiVar4 != (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 (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "local_358 = 0x30000;" (assignment_expression "local_358 = 0x30000" identifier = number_literal) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" ( (binary_expression "ppppppiVar4 == (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      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "local_358 = 0x20000;" (assignment_expression "local_358 = 0x20000" identifier = number_literal) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x3)" ( (binary_expression "ppppppiVar4 != (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_0001bd54;" goto statement_identifier ;)) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "local_358 = 0x60000;" (assignment_expression "local_358 = 0x60000" identifier = number_literal) ;) (labeled_statement "LAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" statement_identifier : (if_statement "if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" if (parenthesized_expression "(pppppppiVar14 == (int *******)0x0)" ( (binary_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)) )) (compound_statement "{\n    iVar16 = -1;\n  }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    iVar16 = (int)local_370 * 1000;\n  }" else (compound_statement "{\n    iVar16 = (int)local_370 * 1000;\n  }" { (expression_statement "iVar16 = (int)local_370 * 1000;" (assignment_expression "iVar16 = (int)local_370 * 1000" identifier = (binary_expression "(int)local_370 * 1000" (cast_expression "(int)local_370" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) })))) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar26,1,iVar16)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" { (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar3 != 4)" ( (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f)" identifier = (cast_expression "(int *******)((local_358 << 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 "((local_358 << 0x1d) >> 0x1f)" ( (binary_expression "(local_358 << 0x1d) >> 0x1f" (parenthesized_expression "(local_358 << 0x1d)" ( (binary_expression "local_358 << 0x1d" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);" (assignment_expression "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0)" identifier = (cast_expression "(int *******)(uint)((local_358 & 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)((local_358 & 0xba) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_358 & 0xba) != 0)" ( (binary_expression "(local_358 & 0xba) != 0" (parenthesized_expression "(local_358 & 0xba)" ( (binary_expression "local_358 & 0xba" identifier & number_literal) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);" (assignment_expression "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1)" identifier = (cast_expression "(int *******)((int)local_358._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)local_358._2_2_ & 1)" ( (binary_expression "(int)local_358._2_2_ & 1" (cast_expression "(int)local_358._2_2_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_358._2_2_" identifier . field_identifier)) & number_literal) )))) ;) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;" if (parenthesized_expression "(ppppppiVar9 != (int ******)0x14)" ( (binary_expression "ppppppiVar9 != (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 ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" statement_identifier : (if_statement "if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" if (parenthesized_expression "((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" ( (binary_expression "(ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar19[0x12] != (int *****)0x0)" ( (binary_expression "ppppppiVar19[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar19[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 "(pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" ( (comma_expression "pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar15 = (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    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" { (expression_statement "pppppppiVar14 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar14 = pppppppiVar11 + 0xb" identifier = (binary_expression "pppppppiVar11 + 0xb" identifier + number_literal)) ;) (expression_statement "pppppppiVar13 = pppppppiVar11;" (assignment_expression "pppppppiVar13 = pppppppiVar11" identifier = identifier) ;) (expression_statement "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);" (call_expression "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13])" (parenthesized_expression "(*(code *)ppppppiVar19[0x12])" ( (pointer_expression "*(code *)ppppppiVar19[0x12]" * (cast_expression "(code *)ppppppiVar19[0x12]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppiVar19[0x12]" identifier [ number_literal ]))) )) (argument_list "(ppppppiVar19[0x13])" ( (subscript_expression "ppppppiVar19[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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }" { (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" * (cast_expression "(undefined4 *)(local_390 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7e20)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0)" identifier = (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7be0)" ( (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(local_390 + -0x7fac)" * (cast_expression "(int *)(local_390 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" { (expression_statement "unaff_s7 = local_1d4;" (assignment_expression "unaff_s7 = local_1d4" identifier = identifier) ;) (expression_statement "pppppppiVar23 = unaff_s7;" (assignment_expression "pppppppiVar23 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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 "(pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)" ( (comma_expression "pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar24 = local_154" 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          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);" do (compound_statement "{\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        }" { (expression_statement "pppppppiVar24 = local_154;" (assignment_expression "pppppppiVar24 = local_154" identifier = identifier) ;) (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" * 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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" identifier = (binary_expression "pppppppiVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar17 = local_d4;" (assignment_expression "pppppppiVar17 = local_d4" identifier = identifier) ;) (expression_statement "pppppppiVar13 = pppppppiVar24;" (assignment_expression "pppppppiVar13 = pppppppiVar24" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar24 != pppppppiVar23)" ( (binary_expression "pppppppiVar24 != pppppppiVar23" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);" do (compound_statement "{\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        }" { (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" * 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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" identifier = (binary_expression "pppppppiVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar23 = pppppppiVar17;" (assignment_expression "pppppppiVar23 = pppppppiVar17" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar17 != pppppppiVar13)" ( (binary_expression "pppppppiVar17 != pppppppiVar13" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);" do (compound_statement "{\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        }" { (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" * 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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" identifier = (binary_expression "pppppppiVar23 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar26 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar26 = (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 "(pppppppiVar23 != &local_54)" ( (binary_expression "pppppppiVar23 != &local_54" identifier != (pointer_expression "&local_54" & identifier)) )) ;) (expression_statement "local_394 = 0x400;" (assignment_expression "local_394 = 0x400" identifier = number_literal) ;) (expression_statement "local_398 = &local_374;" (assignment_expression "local_398 = &local_374" identifier = (pointer_expression "&local_374" & identifier)) ;) (expression_statement "local_374 = (int ******)0xffffffff;" (assignment_expression "local_374 = (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 "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar16 = 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 (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3434)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -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 (local_374 != (int ******)0xffffffff) break;" if (parenthesized_expression "(local_374 != (int ******)0xffffffff)" ( (binary_expression "local_374 != (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        pppppppiVar15 = pppppppiVar17;" statement_identifier : (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" 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 "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) })) (expression_statement "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (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         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" if (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" ( (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (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 "(local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" ( (comma_expression "local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "local_398 = (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        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" { (expression_statement "local_398 = &local_368;" (assignment_expression "local_398 = &local_368" identifier = (pointer_expression "&local_368" & identifier)) ;) (expression_statement "local_368 = (int ******)0x0;" (assignment_expression "local_368 = (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 "local_364 = 0;" (assignment_expression "local_364 = 0" identifier = number_literal) ;) })) (expression_statement "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)local_374 + 1)" ( (binary_expression "(int)local_374 + 1" (cast_expression "(int)local_374" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (-1 < iVar16) goto LAB_0001c4bc;" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (goto_statement "goto LAB_0001c4bc;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar17 = (int *******)*puVar8;" (assignment_expression "pppppppiVar17 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) }) while (parenthesized_expression "(pppppppiVar17 == (int *******)0x4)" ( (binary_expression "pppppppiVar17 == (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 "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar17)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar17)" ( identifier ))))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar14 = pppppppiVar17;" (assignment_expression "pppppppiVar14 = pppppppiVar17" identifier = identifier) ;) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" identifier (argument_list "(ppppppiVar19)" ( identifier ))) ;) }) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" else (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" { (expression_statement "pppppppiVar13 = local_d4;" (assignment_expression "pppppppiVar13 = local_d4" identifier = identifier) ;) (expression_statement "local_d4[1] = (int ******)0x0;" (assignment_expression "local_d4[1] = (int ******)0x0" (subscript_expression "local_d4[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 "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7b40)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_d4[3] = (int ******)0x0;" (assignment_expression "local_d4[3] = (int ******)0x0" (subscript_expression "local_d4[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 "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40)" identifier = (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7c40)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" * (cast_expression "(undefined4 *)(local_390 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "local_d4[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "local_d4[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "local_d4[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 "local_d4[2] = unaff_s6[0x10];" (assignment_expression "local_d4[2] = unaff_s6[0x10]" (subscript_expression "local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }" { (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))" ( (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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 "(pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)" ( (comma_expression "pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar17 = pppppppiVar13" 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          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (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          pppppppiVar14 = (int *******)0xffffffff;\n        }" { (expression_statement "pppppppiVar14 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar14 = (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          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" else (compound_statement "{\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" { (expression_statement "pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar14 = (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar13,2)" ( identifier , number_literal )))) ;) (if_statement "if (iVar16 < 0) break;" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar13);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar13)" identifier (argument_list "(unaff_s6,pppppppiVar13)" ( identifier , identifier ))) ;) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar3 == 4)" ( (binary_expression "*piVar3 == 4" (pointer_expression "*piVar3" * identifier) == number_literal) )) ;) (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (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 "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();" (assignment_expression "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))()" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -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 **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar17);" (call_expression "FUN_00020df0(pppppppiVar17)" identifier (argument_list "(pppppppiVar17)" ( 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 "pcVar30 = *(code **)(local_390 + -0x7df4);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7df4)" identifier = (pointer_expression "*(code **)(local_390 + -0x7df4)" * (cast_expression "(code **)(local_390 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7df4)" ( (binary_expression "local_390 + -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 "(*pcVar30)(pppppppiVar11);" (call_expression "(*pcVar30)(pppppppiVar11)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pppppppiVar11)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" statement_identifier : (if_statement "if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" if (parenthesized_expression "(local_54 == (int ******)*local_384)" ( (binary_expression "local_54 == (int ******)*local_384" identifier == (cast_expression "(int ******)*local_384" ( (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 "*local_384" * identifier))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "pcVar30 = *(code **)(local_390 + -0x7d78);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7d78)" identifier = (pointer_expression "*(code **)(local_390 + -0x7d78)" * (cast_expression "(code **)(local_390 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d78)" ( (binary_expression "local_390 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = FUN_0001c688;" (assignment_expression "pcVar31 = FUN_0001c688" identifier = identifier) ;) (expression_statement "ppppppiVar4 = local_54;" (assignment_expression "ppppppiVar4 = local_54" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar3 = *(int **)(pcVar30 + 0x22c64);" (assignment_expression "piVar3 = *(int **)(pcVar30 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x22c64)" * (cast_expression "(int **)(pcVar30 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c64)" ( (binary_expression "pcVar30 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iStack_3d4 = *piVar3;" (assignment_expression "iStack_3d4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "*(undefined1 *)(ppppppiVar4 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar4 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar4 + 0x39)" * (cast_expression "(undefined1 *)(ppppppiVar4 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4 + 0x39)" ( (binary_expression "ppppppiVar4 + 0x39" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppiStack_3d0 = pppppppiVar17;" (assignment_expression "pppppppiStack_3d0 = pppppppiVar17" identifier = identifier) ;) (expression_statement "ppppppiStack_3cc = ppppppiVar19;" (assignment_expression "ppppppiStack_3cc = ppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar21;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar21" identifier = identifier) ;) (expression_statement "uStack_3c4 = uVar22;" (assignment_expression "uStack_3c4 = uVar22" identifier = identifier) ;) (expression_statement "pppppppiStack_3c0 = pppppppiVar24;" (assignment_expression "pppppppiStack_3c0 = pppppppiVar24" identifier = identifier) ;) (expression_statement "ppppppiStack_3bc = ppppppiVar26;" (assignment_expression "ppppppiStack_3bc = ppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_3b8 = unaff_s6;" (assignment_expression "pppppppiStack_3b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiStack_3b4 = unaff_s7;" (assignment_expression "pppppppiStack_3b4 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3b0 = pppppppiVar11;" (assignment_expression "pppppppiStack_3b0 = pppppppiVar11" identifier = identifier) ;) (expression_statement "pcStack_3ac = pcVar31;" (assignment_expression "pcStack_3ac = pcVar31" identifier = identifier) ;) (if_statement "if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" if (parenthesized_expression "(ppppppiVar4[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar4[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar4[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    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" { (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))();" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppiVar12 = ppppppiVar4[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x37]" identifier = (subscript_expression "ppppppiVar4[0x37]" identifier [ number_literal ])) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c90)" * (cast_expression "(code **)(pcVar30 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c90)" ( (binary_expression "pcVar30 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" else (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c90)" * (cast_expression "(code **)(pcVar30 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c90)" ( (binary_expression "pcVar30 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" { (expression_statement "(*pcVar31)(pppppiVar12,auStack_3e0,8);" (call_expression "(*pcVar31)(pppppiVar12,auStack_3e0,8)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppiVar12,auStack_3e0,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pppppiVar12 = ppppppiVar4[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x31]" identifier = (subscript_expression "ppppppiVar4[0x31]" identifier [ number_literal ])) ;) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" if (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0'))" ( (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 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)ppppppiVar4 + 0xe1) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar4 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xe1)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xe1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xe1)" ( (binary_expression "(int)ppppppiVar4 + 0xe1" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" { (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12)" ( identifier )))) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) }) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" else (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) }))) (if_statement "if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0001afec(ppppppiVar4);\n    }" { (expression_statement "FUN_0001afec(ppppppiVar4);" (call_expression "FUN_0001afec(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) })) })) (if_statement "if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" if (parenthesized_expression "((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0))" ( (binary_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0)" ( (binary_expression "((uint)ppppppiVar4[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar4[0x3e] & 4)" ( (binary_expression "(uint)ppppppiVar4[0x3e] & 4" (cast_expression "(uint)ppppppiVar4[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar4[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppppppiVar4[3] != (int *****)0x0)" ( (binary_expression "ppppppiVar4[3] != (int *****)0x0" (subscript_expression "ppppppiVar4[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    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" { (expression_statement "iVar16 = *(int *)(pcVar30 + 0x229fc);" (assignment_expression "iVar16 = *(int *)(pcVar30 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x229fc)" * (cast_expression "(int *)(pcVar30 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x229fc)" ( (binary_expression "pcVar30 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" do (compound_statement "{\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" { (expression_statement "ppppiVar27 = pppppiVar12[0x29];" (assignment_expression "ppppiVar27 = pppppiVar12[0x29]" identifier = (subscript_expression "pppppiVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "pppppiVar18 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar18 = (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 (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" if (parenthesized_expression "(ppppiVar27 != (int ****)0xffffffff)" ( (binary_expression "ppppiVar27 != (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        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" { (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f))" identifier = (cast_expression "(int *******)(1 << ((uint)ppppiVar27 & 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)ppppiVar27 & 0x1f))" ( (binary_expression "1 << ((uint)ppppiVar27 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppppiVar27 & 0x1f)" ( (binary_expression "(uint)ppppiVar27 & 0x1f" (cast_expression "(uint)ppppiVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "ppppppiVar9 = pppppppiVar13[iVar2];" (assignment_expression "ppppppiVar9 = pppppppiVar13[iVar2]" identifier = (subscript_expression "pppppppiVar13[iVar2]" identifier [ identifier ])) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "ppppppiVar19 = pppppppiVar14[iVar2];" (assignment_expression "ppppppiVar19 = pppppppiVar14[iVar2]" identifier = (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);" (call_expression "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" (parenthesized_expression "(*(code *)(iVar16 + -0x7974))" ( (pointer_expression "*(code *)(iVar16 + -0x7974)" * (cast_expression "(code *)(iVar16 + -0x7974)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x7974)" ( (binary_expression "iVar16 + -0x7974" identifier + number_literal) )))) )) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar9) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar9)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar9" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar19) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar19)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar19" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2])" ( (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar15[iVar2]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppiVar15[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar15[iVar2]" identifier [ identifier ]))) )) != number_literal) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" ( (binary_expression "pppppiVar18 != (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 (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" if (parenthesized_expression "(ppppppiVar4[0x42] != (int *****)0x0)" ( (binary_expression "ppppppiVar4[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar4[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 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (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 = ppppppiVar4[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x42]" identifier = (subscript_expression "ppppppiVar4[0x42]" identifier [ number_literal ])) ;) (do_statement "do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" do (compound_statement "{\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" { (expression_statement "pppppiVar18 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar18 = (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,pppppppiVar13,pppppppiVar14,pppppppiVar15);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" identifier (argument_list "(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" ( 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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }" { (expression_statement "FUN_00014600(*pppppiVar12);" (call_expression "FUN_00014600(*pppppiVar12)" identifier (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22bb4);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22bb4)" * (cast_expression "(code **)(pcVar30 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22bb4)" ( (binary_expression "pcVar30 + 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 "(*pcVar31)(*pppppiVar12);" (call_expression "(*pcVar31)(*pppppiVar12)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" ( (binary_expression "pppppiVar18 != (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(ppppppiVar4);" (call_expression "FUN_0001ab80(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) (if_statement "if (iStack_3d4 == *piVar3) {\n    return 1;\n  }" if (parenthesized_expression "(iStack_3d4 == *piVar3)" ( (binary_expression "iStack_3d4 == *piVar3" identifier == (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar30 = *(code **)(pcVar30 + 0x22c30);" (assignment_expression "pcVar30 = *(code **)(pcVar30 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c30)" * (cast_expression "(code **)(pcVar30 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c30)" ( (binary_expression "pcVar30 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = iStack_3d4;" (assignment_expression "iVar16 = iStack_3d4" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar29 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar29 = *(uint *)(iVar16 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = uVar29 & 4;" (assignment_expression "uVar28 = uVar29 & 4" identifier = (binary_expression "uVar29 & 4" identifier & number_literal)) ;) (expression_statement "pppppppiVar23 = (int *******)(uVar29 & 0x8000);" (assignment_expression "pppppppiVar23 = (int *******)(uVar29 & 0x8000)" identifier = (cast_expression "(int *******)(uVar29 & 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 "(uVar29 & 0x8000)" ( (binary_expression "uVar29 & 0x8000" identifier & number_literal) )))) ;) (expression_statement "uVar10 = uVar29;" (assignment_expression "uVar10 = uVar29" identifier = identifier) ;) (if_statement "if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }" if (parenthesized_expression "(*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" * (cast_expression "(undefined4 **)(iVar16 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x108)" ( (binary_expression "iVar16 + 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    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 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 "puVar8 = *(undefined4 **)(iVar16 + 0x108);" (assignment_expression "puVar8 = *(undefined4 **)(iVar16 + 0x108)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" * (cast_expression "(undefined4 **)(iVar16 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x108)" ( (binary_expression "iVar16 + 0x108" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);" do (compound_statement "{\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    }" { (expression_statement "puVar20 = (undefined4 *)puVar8[2];" (assignment_expression "puVar20 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018878(puVar8);" (call_expression "FUN_00018878(puVar8)" identifier (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "FUN_00014600(*puVar8);" (call_expression "FUN_00014600(*puVar8)" identifier (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x51)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x51)" ( (binary_expression "(int)puVar8 + 0x51" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar30 + 0x22818))(*puVar8);" (call_expression "(**(code **)(pcVar30 + 0x22818))(*puVar8)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22818))" ( (pointer_expression "**(code **)(pcVar30 + 0x22818)" * (pointer_expression "*(code **)(pcVar30 + 0x22818)" * (cast_expression "(code **)(pcVar30 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22818)" ( (binary_expression "pcVar30 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) (expression_statement "puVar8 = puVar20;" (assignment_expression "puVar8 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" ( (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pppppppiVar13 = (int *******)0x0;" (assignment_expression "pppppppiVar13 = (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 "uVar10 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar10 = *(uint *)(iVar16 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) ))))) ;) })) (if_statement "if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" if (parenthesized_expression "((uVar10 & 0x2000) != 0)" ( (binary_expression "(uVar10 & 0x2000) != 0" (parenthesized_expression "(uVar10 & 0x2000)" ( (binary_expression "uVar10 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" { (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))) ;) })) (expression_statement "iVar25 = iVar16 + 0xac;" (assignment_expression "iVar25 = iVar16 + 0xac" identifier = (binary_expression "iVar16 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier )))) ;) (expression_statement "uVar22 = 0x191e;" (assignment_expression "uVar22 = 0x191e" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_0001cf0c;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" ( (binary_expression "pppppppiVar23 == (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 "ppppppiVar4 = *(int *******)(iVar16 + 0x14);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0x14)" identifier = (pointer_expression "*(int *******)(iVar16 + 0x14)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" identifier = (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ])) ;) (expression_statement "uVar29 = uVar29 & 2;" (assignment_expression "uVar29 = uVar29 & 2" identifier = (binary_expression "uVar29 & 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 "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 *)(pcVar30 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014)" identifier = (cast_expression "(int *******)(*(int *)(pcVar30 + 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 *)(pcVar30 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (uVar29 == 0) goto LAB_0001cd7c;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001cd9c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 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 **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" ( (pointer_expression "**(code **)(pcVar30 + 0x22744)" * (pointer_expression "*(code **)(pcVar30 + 0x22744)" * (cast_expression "(code **)(pcVar30 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22744)" ( (binary_expression "pcVar30 + 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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" statement_identifier : (expression_statement "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4 + 0x3f)" * (cast_expression "(char *)(ppppppiVar4 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4 + 0x3f)" ( (binary_expression "ppppppiVar4 + 0x3f" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;" (assignment_expression "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13" (pointer_expression "*(char *)(iVar16 + 0xe3)" * (cast_expression "(char *)(iVar16 + 0xe3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];" statement_identifier : (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;)) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" { (expression_statement "pppppiVar12 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" identifier = (subscript_expression "ppppppiVar4[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    uVar22 = 0x1929;" statement_identifier : (expression_statement "uVar22 = 0x1929;" (assignment_expression "uVar22 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar22 = 0x1948;" statement_identifier : (expression_statement "uVar22 = 0x1948;" (assignment_expression "uVar22 = 0x1948" identifier = number_literal) ;)) }) while (parenthesized_expression "(*(int *)(iVar16 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar16 + 0x10) != 0" (pointer_expression "*(int *)(iVar16 + 0x10)" * (cast_expression "(int *)(iVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) })) (labeled_statement "LAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);" statement_identifier : (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);" do (compound_statement "{\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    }" { (expression_statement "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" ( (pointer_expression "**(code **)(pcVar30 + 0x22744)" * (pointer_expression "*(code **)(pcVar30 + 0x22744)" * (cast_expression "(code **)(pcVar30 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22744)" ( (binary_expression "pcVar30 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar4[0x29],2)" ( (subscript_expression "ppppppiVar4[0x29]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar4 = (int ******)0x0;" (assignment_expression "ppppppiVar4 = (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 ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" if (parenthesized_expression "((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0))" ( (binary_expression "(uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" ( (comma_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) , (binary_expression "ppppppiVar4 != (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      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);" do (compound_statement "{\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      }" { (while_statement "while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')" ( (comma_expression "pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) , (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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 "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" identifier = (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar25)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" { (expression_statement "uVar22 = 0x195e;" (assignment_expression "uVar22 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" identifier = (call_expression "(**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" (parenthesized_expression "(**(code **)(pcVar30 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar30 + 0x2277c)" * (pointer_expression "*(code **)(pcVar30 + 0x2277c)" * (cast_expression "(code **)(pcVar30 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2277c)" ( (binary_expression "pcVar30 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar4[0x16],0)" ( (subscript_expression "ppppppiVar4[0x16]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0001cf30;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" { (expression_statement "uVar22 = 0x1961;" (assignment_expression "uVar22 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(undefined1 *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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  iVar2 = (*pcVar31)(iVar25);" statement_identifier : (expression_statement "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" identifier = (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar25)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }" { (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" if (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" ( (binary_expression "pppppppiVar23 != (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 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" { (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))) ;) })) (do_statement "do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);" do (compound_statement "{\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    }" { (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" { (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" { (expression_statement "iVar16 = FUN_0001ab80(iVar16);" (assignment_expression "iVar16 = FUN_0001ab80(iVar16)" identifier = (call_expression "FUN_0001ab80(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) (return_statement "return iVar16;" return identifier ;) })) (if_statement "if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" if (parenthesized_expression "(((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))" ( (binary_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar16 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar16 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "pppppppiVar13 = (int *******)ppppppiVar4[6];" (assignment_expression "pppppppiVar13 = (int *******)ppppppiVar4[6]" identifier = (cast_expression "(int *******)ppppppiVar4[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 "ppppppiVar4[6]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppiVar13[0x3e] & 4) == 0)" ( (binary_expression "((uint)pppppppiVar13[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar13[0x3e] & 4)" ( (binary_expression "(uint)pppppppiVar13[0x3e] & 4" (cast_expression "(uint)pppppppiVar13[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000140b4(ppppppiVar4);" (call_expression "FUN_000140b4(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar23 = pppppppiVar13 + 0x2b;" (assignment_expression "pppppppiVar23 = pppppppiVar13 + 0x2b" identifier = (binary_expression "pppppppiVar13 + 0x2b" identifier + number_literal)) ;) (expression_statement "FUN_00014148(ppppppiVar4,3);" (call_expression "FUN_00014148(ppppppiVar4,3)" identifier (argument_list "(ppppppiVar4,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar23)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar22 = 0x11ca;" (assignment_expression "uVar22 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppiVar12 = ppppppiVar4[5];" (assignment_expression "pppppiVar12 = ppppppiVar4[5]" identifier = (subscript_expression "ppppppiVar4[5]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[4];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[4]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[4]" identifier [ number_literal ]))) ;) (if_statement "if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" if (parenthesized_expression "((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c])" ( (binary_expression "(int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]" (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[0x26]" identifier [ number_literal ])) == (subscript_expression "pppppppiVar13[0x3c]" identifier [ number_literal ])) )) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xc] = ppppppiVar9;\n        }" { (expression_statement "pppppppiVar13[0xc] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xc] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" identifier = (subscript_expression "ppppppiVar4[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 "pppppppiVar13[0xd] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xd] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xd]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];" statement_identifier : (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;)) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[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        pppppppiVar13[2] = ppppppiVar9;" statement_identifier : (expression_statement "pppppppiVar13[2] = ppppppiVar9;" (assignment_expression "pppppppiVar13[2] = ppppppiVar9" (subscript_expression "pppppppiVar13[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" identifier = (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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        pppppppiVar13[3] = ppppppiVar9;" statement_identifier : (expression_statement "pppppppiVar13[3] = ppppppiVar9;" (assignment_expression "pppppppiVar13[3] = ppppppiVar9" (subscript_expression "pppppppiVar13[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" identifier = (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar9" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;" if (parenthesized_expression "(pppppppiVar13[7] != (int ******)0x0)" ( (binary_expression "pppppppiVar13[7] != (int ******)0x0" (subscript_expression "pppppppiVar13[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        pppppppiVar13[7] = ppppppiVar4;" statement_identifier : (expression_statement "pppppppiVar13[7] = ppppppiVar4;" (assignment_expression "pppppppiVar13[7] = ppppppiVar4" (subscript_expression "pppppppiVar13[7]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" else (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xe] = ppppppiVar9;\n        }" { (expression_statement "pppppppiVar13[0xe] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xe] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xe]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" identifier = (subscript_expression "ppppppiVar4[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\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 ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[5]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (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 "pppppppiVar13[0xf] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xf] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" identifier = (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" identifier = (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar9" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;" if (parenthesized_expression "(pppppppiVar13[7] == (int ******)0x0)" ( (binary_expression "pppppppiVar13[7] == (int ******)0x0" (subscript_expression "pppppppiVar13[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        ppppppiVar9[3] = (int *****)ppppppiVar4;" statement_identifier : (expression_statement "ppppppiVar9[3] = (int *****)ppppppiVar4;" (assignment_expression "ppppppiVar9[3] = (int *****)ppppppiVar4" (subscript_expression "ppppppiVar9[3]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar4" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;)) }))) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar13[6] = ppppppiVar4;" (assignment_expression "pppppppiVar13[6] = ppppppiVar4" (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*pcVar31)(pppppppiVar23);" (assignment_expression "iVar2 = (*pcVar31)(pppppppiVar23)" identifier = (call_expression "(*pcVar31)(pppppppiVar23)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar23)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "uVar22 = 0x11dd;" (assignment_expression "uVar22 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar22 = 0x196b;\n  }" else (compound_statement "{\n    uVar22 = 0x196b;\n  }" { (expression_statement "uVar22 = 0x196b;" (assignment_expression "uVar22 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" identifier = (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 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 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }" statement_identifier : (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,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(iVar16,unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);" statement_identifier : (expression_statement "FUN_00020df0(iVar16,unaff_s7);" (call_expression "FUN_00020df0(iVar16,unaff_s7)" identifier (argument_list "(iVar16,unaff_s7)" ( identifier , identifier ))) ;)) }))) (expression_statement "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" { (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);" statement_identifier : (expression_statement "FUN_00014600(ppppppiVar4);" (call_expression "FUN_00014600(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( 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 MHD_resume_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  int *piVar4;\n  void *pvVar5;\n  undefined4 uVar6;\n  MHD_Daemon *pMVar7;\n  time_t tVar8;\n  int *piVar9;\n  size_t *psVar10;\n  MHD_UpgradeResponseHandle **ppMVar11;\n  _Bool _Var16;\n  uint *puVar12;\n  int iVar13;\n  MHD_FLAG MVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar17;\n  MHD_Daemon *connection_00;\n  uint uVar18;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var19;\n  MHD_Connection *pMVar20;\n  MHD_Daemon *pMVar21;\n  MHD_AccessHandlerCallback p_Var22;\n  MHD_Daemon *pMVar23;\n  MHD_Daemon **ppMVar24;\n  MHD_Daemon *pMVar25;\n  MHD_Daemon *daemon;\n  MHD_Connection *pMVar26;\n  MHD_UpgradeResponseHandle *pMVar27;\n  MHD_Connection *pMVar28;\n  MHD_Connection *unaff_s1;\n  MHD_Daemon *daemon_00;\n  MHD_mutex_ *unaff_s2;\n  MHD_Daemon *pMVar29;\n  undefined4 uVar30;\n  MHD_mutex_ *pMVar31;\n  MHD_Daemon *ws;\n  MHD_mutex_ *pMVar32;\n  undefined1 *puVar33;\n  MHD_FLAG MVar34;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar35;\n  MHD_Daemon *unaff_s7;\n  code *pcVar36;\n  code *pcVar37;\n  undefined1 auStackY_3e0 [12];\n  MHD_Daemon *pMStackY_3d4;\n  MHD_Daemon *pMStackY_3d0;\n  MHD_Daemon *pMStackY_3cc;\n  MHD_Daemon *pMStackY_3c8;\n  undefined4 uStackY_3c4;\n  size_t *psStackY_3c0;\n  undefined1 *puStackY_3bc;\n  MHD_Daemon *pMStackY_3b8;\n  MHD_Daemon *pMStackY_3b4;\n  MHD_Daemon *pMStackY_3b0;\n  code *pcStackY_3ac;\n  MHD_socket MStack_378;\n  MHD_socket MStack_374;\n  MHD_Daemon *pMStack_370;\n  undefined4 uStack_36c;\n  undefined1 auStack_368 [148];\n  undefined1 auStack_2d4 [256];\n  MHD_Daemon MStack_1d4;\n  MHD_Daemon *pMStack_54;\n  MHD_Daemon *pMStack_50;\n  MHD_Connection *pMStack_4c;\n  MHD_mutex_ *pMStack_48;\n  \n  pMVar25 = connection->daemon;\n  if ((pMVar25->options & 0x2000) == MHD_NO_FLAG) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    connection = unaff_s1;\n  }\n  else {\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n  pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar36 = *(code **)PTR_mhd_panic_0003f070;\n  p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar36)(connection_00,p,0xb01);\n  piVar4 = *(int **)(pcVar36 + 0x23748);\n  puVar33 = auStack_368 + 0xc;\n  uVar30 = 0x8000001f;\n  daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_54 = (MHD_Daemon *)*piVar4;\n  pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL);\n  pMStack_50 = pMVar25;\n  pMStack_4c = connection;\n  pMStack_48 = unaff_s2;\n  pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar5;\n  ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974);\n  pMVar25 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;\n  if (daemon != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon_00->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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();\n    }\n    pMVar21 = (MHD_Daemon *)0x8;\n    if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(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_00->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    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;\n    pMVar25 = unaff_s6;\n    if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_368._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_368._12_4_ = pMVar28;\n    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar25 != (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  pMVar25 = (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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar24 = (MHD_Daemon **)0x0;\n    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    set = (MHD_Daemon *)(auStack_368 + 0x14);\n    unaff_s6 = (MHD_Daemon *)auStack_2d4;\n    pMVar21 = set;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);\n    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);\n    pMVar21 = unaff_s6;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);\n    do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);\n    MStack_378 = -1;\n    if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }\n    pMVar23 = unaff_s7;\n    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);\n    if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_370 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_36c = 0;\n  ppMVar24 = &pMStack_370;\n  if (pMVar29 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n  auStack_368._16_4_ = (MHD_Connection *)0x0;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 != 3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  auStack_368._16_4_ = (MHD_Connection *)0x60000;\nLAB_0001bd54:\n  if (ppMVar24 == (MHD_Daemon **)0x0) {\n    iVar3 = -1;\n  }\n  else {\n    iVar3 = (int)pMStack_370 * 1000;\n  }\n  p = (MHD_Daemon *)0x1;\n  iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3);\n  if (iVar3 < 0) {\n    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    if (*piVar9 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f);\n  bVar1 = (auStack_368._16_4_ & 0xba) != 0;\n  pMVar23 = (MHD_Daemon *)(uint)bVar1;\n  p = (MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1);\n  iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._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_0001bc2c;\nLAB_0001c01c:\n  if ((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar28 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar18 = pMVar28->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar18 & 0x42) == 2) {\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));\n    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);\n    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n    pMVar21 = daemon;\n    MHD_DLOG(daemon_00,(char *)p);\n  }\n  else if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar37 = *(code **)(pcVar36 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar37)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_54 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x23714);\n  pcVar37 = internal_run_from_select;\n  pMVar25 = pMStack_54;\n  (*pcVar36)();\n  piVar4 = *(int **)(pcVar36 + 0x22c64);\n  iVar3 = (pMVar25->itc).fd;\n  pMStackY_3d4 = (MHD_Daemon *)*piVar4;\n  pMVar25->data_already_pending = false;\n  pMStackY_3d0 = daemon;\n  pMStackY_3cc = daemon_00;\n  pMStackY_3c8 = pMVar29;\n  uStackY_3c4 = uVar30;\n  psStackY_3c0 = (size_t *)ws;\n  puStackY_3bc = puVar33;\n  pMStackY_3b8 = unaff_s6;\n  pMStackY_3b4 = unaff_s7;\n  pMStackY_3b0 = connection_00;\n  pcStackY_3ac = pcVar37;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))();\n    uVar18 = (pMVar25->itc).fd;\n    if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }\n  }\n  uVar18 = pMVar25->listen_fd;\n  if ((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n    if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }\n  }\n  if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar36 + 0x229fc);\n    pMVar28 = pMVar25->connections_tail;\n    do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);\n  }\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar25);\n  if (pMStackY_3d4 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x22c30);\n  pMVar25 = pMStackY_3d4;\n  (*pcVar36)();\n  MVar35 = pMVar25->options;\n  MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE);\n  MVar14 = MVar35;\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar14 = pMVar25->options;\n  }\n  if ((MVar14 & 0x2000) != MHD_NO_FLAG) {\n    pMVar25->resuming = true;\n    resume_suspended_connections(pMVar25);\n  }\n  pMVar32 = &pMVar25->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n  uVar30 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar31 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar28 = pMVar25->suspended_connections_tail;\n  if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar15 = pMVar28->urh;\n  MVar35 = MVar35 & MHD_USE_SSL;\n  if (pMVar15 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar34 == MHD_NO_FLAG) {\n    if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n    pMVar28->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar15->clean_ready == false) {\n    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n  pMVar28->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar28->resuming = SUB41(p,0);\n  pMVar25->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar28 = pMVar28->prev;\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    pMVar15 = pMVar28->urh;\n    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar30 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar28 = pMVar25->connections_tail;\n  pcVar37 = *(code **)(pcVar36 + 0x22918);\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);\n    pcVar37 = *(code **)(pcVar36 + 0x22918);\n    pMVar28 = (MHD_Connection *)0x0;\n    if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar37)(pMVar32);\n  if (iVar3 == 0) {\n    if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }\n    do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);\n    uVar30 = 0x11dd;\n  }\n  else {\n    uVar30 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar15->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }\n  pMVar28->urh->was_closed = SUB41(p,0);\n  if (MVar34 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);\n  }\n  goto LAB_0001cb4c;\n}\n\n" comment comment comment (function_definition "void MHD_resume_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  int *piVar4;\n  void *pvVar5;\n  undefined4 uVar6;\n  MHD_Daemon *pMVar7;\n  time_t tVar8;\n  int *piVar9;\n  size_t *psVar10;\n  MHD_UpgradeResponseHandle **ppMVar11;\n  _Bool _Var16;\n  uint *puVar12;\n  int iVar13;\n  MHD_FLAG MVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar17;\n  MHD_Daemon *connection_00;\n  uint uVar18;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var19;\n  MHD_Connection *pMVar20;\n  MHD_Daemon *pMVar21;\n  MHD_AccessHandlerCallback p_Var22;\n  MHD_Daemon *pMVar23;\n  MHD_Daemon **ppMVar24;\n  MHD_Daemon *pMVar25;\n  MHD_Daemon *daemon;\n  MHD_Connection *pMVar26;\n  MHD_UpgradeResponseHandle *pMVar27;\n  MHD_Connection *pMVar28;\n  MHD_Connection *unaff_s1;\n  MHD_Daemon *daemon_00;\n  MHD_mutex_ *unaff_s2;\n  MHD_Daemon *pMVar29;\n  undefined4 uVar30;\n  MHD_mutex_ *pMVar31;\n  MHD_Daemon *ws;\n  MHD_mutex_ *pMVar32;\n  undefined1 *puVar33;\n  MHD_FLAG MVar34;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar35;\n  MHD_Daemon *unaff_s7;\n  code *pcVar36;\n  code *pcVar37;\n  undefined1 auStackY_3e0 [12];\n  MHD_Daemon *pMStackY_3d4;\n  MHD_Daemon *pMStackY_3d0;\n  MHD_Daemon *pMStackY_3cc;\n  MHD_Daemon *pMStackY_3c8;\n  undefined4 uStackY_3c4;\n  size_t *psStackY_3c0;\n  undefined1 *puStackY_3bc;\n  MHD_Daemon *pMStackY_3b8;\n  MHD_Daemon *pMStackY_3b4;\n  MHD_Daemon *pMStackY_3b0;\n  code *pcStackY_3ac;\n  MHD_socket MStack_378;\n  MHD_socket MStack_374;\n  MHD_Daemon *pMStack_370;\n  undefined4 uStack_36c;\n  undefined1 auStack_368 [148];\n  undefined1 auStack_2d4 [256];\n  MHD_Daemon MStack_1d4;\n  MHD_Daemon *pMStack_54;\n  MHD_Daemon *pMStack_50;\n  MHD_Connection *pMStack_4c;\n  MHD_mutex_ *pMStack_48;\n  \n  pMVar25 = connection->daemon;\n  if ((pMVar25->options & 0x2000) == MHD_NO_FLAG) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    connection = unaff_s1;\n  }\n  else {\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n  pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar36 = *(code **)PTR_mhd_panic_0003f070;\n  p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar36)(connection_00,p,0xb01);\n  piVar4 = *(int **)(pcVar36 + 0x23748);\n  puVar33 = auStack_368 + 0xc;\n  uVar30 = 0x8000001f;\n  daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_54 = (MHD_Daemon *)*piVar4;\n  pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL);\n  pMStack_50 = pMVar25;\n  pMStack_4c = connection;\n  pMStack_48 = unaff_s2;\n  pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar5;\n  ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974);\n  pMVar25 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;\n  if (daemon != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon_00->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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();\n    }\n    pMVar21 = (MHD_Daemon *)0x8;\n    if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(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_00->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    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;\n    pMVar25 = unaff_s6;\n    if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_368._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_368._12_4_ = pMVar28;\n    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar25 != (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  pMVar25 = (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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar24 = (MHD_Daemon **)0x0;\n    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    set = (MHD_Daemon *)(auStack_368 + 0x14);\n    unaff_s6 = (MHD_Daemon *)auStack_2d4;\n    pMVar21 = set;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);\n    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);\n    pMVar21 = unaff_s6;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);\n    do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);\n    MStack_378 = -1;\n    if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }\n    pMVar23 = unaff_s7;\n    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);\n    if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_370 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_36c = 0;\n  ppMVar24 = &pMStack_370;\n  if (pMVar29 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n  auStack_368._16_4_ = (MHD_Connection *)0x0;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 != 3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  auStack_368._16_4_ = (MHD_Connection *)0x60000;\nLAB_0001bd54:\n  if (ppMVar24 == (MHD_Daemon **)0x0) {\n    iVar3 = -1;\n  }\n  else {\n    iVar3 = (int)pMStack_370 * 1000;\n  }\n  p = (MHD_Daemon *)0x1;\n  iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3);\n  if (iVar3 < 0) {\n    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    if (*piVar9 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f);\n  bVar1 = (auStack_368._16_4_ & 0xba) != 0;\n  pMVar23 = (MHD_Daemon *)(uint)bVar1;\n  p = (MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1);\n  iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._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_0001bc2c;\nLAB_0001c01c:\n  if ((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar28 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar18 = pMVar28->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar18 & 0x42) == 2) {\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));\n    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);\n    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n    pMVar21 = daemon;\n    MHD_DLOG(daemon_00,(char *)p);\n  }\n  else if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar37 = *(code **)(pcVar36 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar37)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_54 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x23714);\n  pcVar37 = internal_run_from_select;\n  pMVar25 = pMStack_54;\n  (*pcVar36)();\n  piVar4 = *(int **)(pcVar36 + 0x22c64);\n  iVar3 = (pMVar25->itc).fd;\n  pMStackY_3d4 = (MHD_Daemon *)*piVar4;\n  pMVar25->data_already_pending = false;\n  pMStackY_3d0 = daemon;\n  pMStackY_3cc = daemon_00;\n  pMStackY_3c8 = pMVar29;\n  uStackY_3c4 = uVar30;\n  psStackY_3c0 = (size_t *)ws;\n  puStackY_3bc = puVar33;\n  pMStackY_3b8 = unaff_s6;\n  pMStackY_3b4 = unaff_s7;\n  pMStackY_3b0 = connection_00;\n  pcStackY_3ac = pcVar37;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))();\n    uVar18 = (pMVar25->itc).fd;\n    if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }\n  }\n  uVar18 = pMVar25->listen_fd;\n  if ((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n    if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }\n  }\n  if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar36 + 0x229fc);\n    pMVar28 = pMVar25->connections_tail;\n    do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);\n  }\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar25);\n  if (pMStackY_3d4 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x22c30);\n  pMVar25 = pMStackY_3d4;\n  (*pcVar36)();\n  MVar35 = pMVar25->options;\n  MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE);\n  MVar14 = MVar35;\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar14 = pMVar25->options;\n  }\n  if ((MVar14 & 0x2000) != MHD_NO_FLAG) {\n    pMVar25->resuming = true;\n    resume_suspended_connections(pMVar25);\n  }\n  pMVar32 = &pMVar25->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n  uVar30 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar31 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar28 = pMVar25->suspended_connections_tail;\n  if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar15 = pMVar28->urh;\n  MVar35 = MVar35 & MHD_USE_SSL;\n  if (pMVar15 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar34 == MHD_NO_FLAG) {\n    if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n    pMVar28->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar15->clean_ready == false) {\n    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n  pMVar28->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar28->resuming = SUB41(p,0);\n  pMVar25->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar28 = pMVar28->prev;\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    pMVar15 = pMVar28->urh;\n    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar30 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar28 = pMVar25->connections_tail;\n  pcVar37 = *(code **)(pcVar36 + 0x22918);\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);\n    pcVar37 = *(code **)(pcVar36 + 0x22918);\n    pMVar28 = (MHD_Connection *)0x0;\n    if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar37)(pMVar32);\n  if (iVar3 == 0) {\n    if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }\n    do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);\n    uVar30 = 0x11dd;\n  }\n  else {\n    uVar30 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar15->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }\n  pMVar28->urh->was_closed = SUB41(p,0);\n  if (MVar34 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "MHD_resume_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  int *piVar4;\n  void *pvVar5;\n  undefined4 uVar6;\n  MHD_Daemon *pMVar7;\n  time_t tVar8;\n  int *piVar9;\n  size_t *psVar10;\n  MHD_UpgradeResponseHandle **ppMVar11;\n  _Bool _Var16;\n  uint *puVar12;\n  int iVar13;\n  MHD_FLAG MVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar17;\n  MHD_Daemon *connection_00;\n  uint uVar18;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var19;\n  MHD_Connection *pMVar20;\n  MHD_Daemon *pMVar21;\n  MHD_AccessHandlerCallback p_Var22;\n  MHD_Daemon *pMVar23;\n  MHD_Daemon **ppMVar24;\n  MHD_Daemon *pMVar25;\n  MHD_Daemon *daemon;\n  MHD_Connection *pMVar26;\n  MHD_UpgradeResponseHandle *pMVar27;\n  MHD_Connection *pMVar28;\n  MHD_Connection *unaff_s1;\n  MHD_Daemon *daemon_00;\n  MHD_mutex_ *unaff_s2;\n  MHD_Daemon *pMVar29;\n  undefined4 uVar30;\n  MHD_mutex_ *pMVar31;\n  MHD_Daemon *ws;\n  MHD_mutex_ *pMVar32;\n  undefined1 *puVar33;\n  MHD_FLAG MVar34;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar35;\n  MHD_Daemon *unaff_s7;\n  code *pcVar36;\n  code *pcVar37;\n  undefined1 auStackY_3e0 [12];\n  MHD_Daemon *pMStackY_3d4;\n  MHD_Daemon *pMStackY_3d0;\n  MHD_Daemon *pMStackY_3cc;\n  MHD_Daemon *pMStackY_3c8;\n  undefined4 uStackY_3c4;\n  size_t *psStackY_3c0;\n  undefined1 *puStackY_3bc;\n  MHD_Daemon *pMStackY_3b8;\n  MHD_Daemon *pMStackY_3b4;\n  MHD_Daemon *pMStackY_3b0;\n  code *pcStackY_3ac;\n  MHD_socket MStack_378;\n  MHD_socket MStack_374;\n  MHD_Daemon *pMStack_370;\n  undefined4 uStack_36c;\n  undefined1 auStack_368 [148];\n  undefined1 auStack_2d4 [256];\n  MHD_Daemon MStack_1d4;\n  MHD_Daemon *pMStack_54;\n  MHD_Daemon *pMStack_50;\n  MHD_Connection *pMStack_4c;\n  MHD_mutex_ *pMStack_48;\n  \n  pMVar25 = connection->daemon;\n  if ((pMVar25->options & 0x2000) == MHD_NO_FLAG) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    connection = unaff_s1;\n  }\n  else {\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n  pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar36 = *(code **)PTR_mhd_panic_0003f070;\n  p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar36)(connection_00,p,0xb01);\n  piVar4 = *(int **)(pcVar36 + 0x23748);\n  puVar33 = auStack_368 + 0xc;\n  uVar30 = 0x8000001f;\n  daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_54 = (MHD_Daemon *)*piVar4;\n  pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL);\n  pMStack_50 = pMVar25;\n  pMStack_4c = connection;\n  pMStack_48 = unaff_s2;\n  pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar5;\n  ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974);\n  pMVar25 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;\n  if (daemon != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon_00->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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();\n    }\n    pMVar21 = (MHD_Daemon *)0x8;\n    if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(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_00->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    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;\n    pMVar25 = unaff_s6;\n    if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_368._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_368._12_4_ = pMVar28;\n    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar25 != (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  pMVar25 = (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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar24 = (MHD_Daemon **)0x0;\n    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    set = (MHD_Daemon *)(auStack_368 + 0x14);\n    unaff_s6 = (MHD_Daemon *)auStack_2d4;\n    pMVar21 = set;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);\n    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);\n    pMVar21 = unaff_s6;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);\n    do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);\n    MStack_378 = -1;\n    if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }\n    pMVar23 = unaff_s7;\n    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);\n    if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_370 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_36c = 0;\n  ppMVar24 = &pMStack_370;\n  if (pMVar29 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n  auStack_368._16_4_ = (MHD_Connection *)0x0;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 != 3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  auStack_368._16_4_ = (MHD_Connection *)0x60000;\nLAB_0001bd54:\n  if (ppMVar24 == (MHD_Daemon **)0x0) {\n    iVar3 = -1;\n  }\n  else {\n    iVar3 = (int)pMStack_370 * 1000;\n  }\n  p = (MHD_Daemon *)0x1;\n  iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3);\n  if (iVar3 < 0) {\n    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    if (*piVar9 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f);\n  bVar1 = (auStack_368._16_4_ & 0xba) != 0;\n  pMVar23 = (MHD_Daemon *)(uint)bVar1;\n  p = (MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1);\n  iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._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_0001bc2c;\nLAB_0001c01c:\n  if ((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar28 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar18 = pMVar28->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar18 & 0x42) == 2) {\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));\n    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);\n    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n    pMVar21 = daemon;\n    MHD_DLOG(daemon_00,(char *)p);\n  }\n  else if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar37 = *(code **)(pcVar36 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar37)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_54 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x23714);\n  pcVar37 = internal_run_from_select;\n  pMVar25 = pMStack_54;\n  (*pcVar36)();\n  piVar4 = *(int **)(pcVar36 + 0x22c64);\n  iVar3 = (pMVar25->itc).fd;\n  pMStackY_3d4 = (MHD_Daemon *)*piVar4;\n  pMVar25->data_already_pending = false;\n  pMStackY_3d0 = daemon;\n  pMStackY_3cc = daemon_00;\n  pMStackY_3c8 = pMVar29;\n  uStackY_3c4 = uVar30;\n  psStackY_3c0 = (size_t *)ws;\n  puStackY_3bc = puVar33;\n  pMStackY_3b8 = unaff_s6;\n  pMStackY_3b4 = unaff_s7;\n  pMStackY_3b0 = connection_00;\n  pcStackY_3ac = pcVar37;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))();\n    uVar18 = (pMVar25->itc).fd;\n    if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }\n  }\n  uVar18 = pMVar25->listen_fd;\n  if ((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n    if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }\n  }\n  if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar36 + 0x229fc);\n    pMVar28 = pMVar25->connections_tail;\n    do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);\n  }\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar25);\n  if (pMStackY_3d4 == (MHD_Daemon *)*piVar4) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x22c30);\n  pMVar25 = pMStackY_3d4;\n  (*pcVar36)();\n  MVar35 = pMVar25->options;\n  MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE);\n  MVar14 = MVar35;\n  if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar14 = pMVar25->options;\n  }\n  if ((MVar14 & 0x2000) != MHD_NO_FLAG) {\n    pMVar25->resuming = true;\n    resume_suspended_connections(pMVar25);\n  }\n  pMVar32 = &pMVar25->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n  uVar30 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar31 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar28 = pMVar25->suspended_connections_tail;\n  if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar15 = pMVar28->urh;\n  MVar35 = MVar35 & MHD_USE_SSL;\n  if (pMVar15 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar34 == MHD_NO_FLAG) {\n    if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n    pMVar28->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar15->clean_ready == false) {\n    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n  pMVar28->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar28->resuming = SUB41(p,0);\n  pMVar25->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar28 = pMVar28->prev;\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    pMVar15 = pMVar28->urh;\n    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar30 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar28 = pMVar25->connections_tail;\n  pcVar37 = *(code **)(pcVar36 + 0x22918);\n  if (pMVar28 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);\n    pcVar37 = *(code **)(pcVar36 + 0x22918);\n    pMVar28 = (MHD_Connection *)0x0;\n    if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar37)(pMVar32);\n  if (iVar3 == 0) {\n    if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }\n    do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);\n    uVar30 = 0x11dd;\n  }\n  else {\n    uVar30 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar15->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }\n  pMVar28->urh->was_closed = SUB41(p,0);\n  if (MVar34 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);\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 "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "void *pvVar5;" primitive_type (pointer_declarator "*pvVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar7;" type_identifier (pointer_declarator "*pMVar7" * identifier) ;) (declaration "time_t tVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "size_t *psVar10;" primitive_type (pointer_declarator "*psVar10" * identifier) ;) (declaration "MHD_UpgradeResponseHandle **ppMVar11;" type_identifier (pointer_declarator "**ppMVar11" * (pointer_declarator "*ppMVar11" * identifier)) ;) (declaration "_Bool _Var16;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "MHD_FLAG MVar14;" type_identifier identifier ;) (declaration "MHD_UpgradeResponseHandle *pMVar15;" type_identifier (pointer_declarator "*pMVar15" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "MHD_Daemon *connection_00;" type_identifier (pointer_declarator "*connection_00" * identifier) ;) (declaration "uint uVar18;" type_identifier 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_Var19;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar20;" type_identifier (pointer_declarator "*pMVar20" * identifier) ;) (declaration "MHD_Daemon *pMVar21;" type_identifier (pointer_declarator "*pMVar21" * identifier) ;) (declaration "MHD_AccessHandlerCallback p_Var22;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar23;" type_identifier (pointer_declarator "*pMVar23" * identifier) ;) (declaration "MHD_Daemon **ppMVar24;" type_identifier (pointer_declarator "**ppMVar24" * (pointer_declarator "*ppMVar24" * identifier)) ;) (declaration "MHD_Daemon *pMVar25;" type_identifier (pointer_declarator "*pMVar25" * identifier) ;) (declaration "MHD_Daemon *daemon;" type_identifier (pointer_declarator "*daemon" * identifier) ;) (declaration "MHD_Connection *pMVar26;" type_identifier (pointer_declarator "*pMVar26" * identifier) ;) (declaration "MHD_UpgradeResponseHandle *pMVar27;" type_identifier (pointer_declarator "*pMVar27" * identifier) ;) (declaration "MHD_Connection *pMVar28;" type_identifier (pointer_declarator "*pMVar28" * identifier) ;) (declaration "MHD_Connection *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "MHD_Daemon *daemon_00;" type_identifier (pointer_declarator "*daemon_00" * identifier) ;) (declaration "MHD_mutex_ *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "MHD_Daemon *pMVar29;" type_identifier (pointer_declarator "*pMVar29" * identifier) ;) (declaration "undefined4 uVar30;" type_identifier identifier ;) (declaration "MHD_mutex_ *pMVar31;" type_identifier (pointer_declarator "*pMVar31" * identifier) ;) (declaration "MHD_Daemon *ws;" type_identifier (pointer_declarator "*ws" * identifier) ;) (declaration "MHD_mutex_ *pMVar32;" type_identifier (pointer_declarator "*pMVar32" * identifier) ;) (declaration "undefined1 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "MHD_FLAG MVar34;" type_identifier identifier ;) (declaration "MHD_Daemon *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "MHD_FLAG MVar35;" type_identifier identifier ;) (declaration "MHD_Daemon *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "undefined1 auStackY_3e0 [12];" type_identifier (array_declarator "auStackY_3e0 [12]" identifier [ number_literal ]) ;) (declaration "MHD_Daemon *pMStackY_3d4;" type_identifier (pointer_declarator "*pMStackY_3d4" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3d0;" type_identifier (pointer_declarator "*pMStackY_3d0" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3cc;" type_identifier (pointer_declarator "*pMStackY_3cc" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3c8;" type_identifier (pointer_declarator "*pMStackY_3c8" * identifier) ;) (declaration "undefined4 uStackY_3c4;" type_identifier identifier ;) (declaration "size_t *psStackY_3c0;" primitive_type (pointer_declarator "*psStackY_3c0" * identifier) ;) (declaration "undefined1 *puStackY_3bc;" type_identifier (pointer_declarator "*puStackY_3bc" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3b8;" type_identifier (pointer_declarator "*pMStackY_3b8" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3b4;" type_identifier (pointer_declarator "*pMStackY_3b4" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3b0;" type_identifier (pointer_declarator "*pMStackY_3b0" * identifier) ;) (declaration "code *pcStackY_3ac;" type_identifier (pointer_declarator "*pcStackY_3ac" * identifier) ;) (declaration "MHD_socket MStack_378;" type_identifier identifier ;) (declaration "MHD_socket MStack_374;" type_identifier identifier ;) (declaration "MHD_Daemon *pMStack_370;" type_identifier (pointer_declarator "*pMStack_370" * identifier) ;) (declaration "undefined4 uStack_36c;" type_identifier identifier ;) (declaration "undefined1 auStack_368 [148];" type_identifier (array_declarator "auStack_368 [148]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_2d4 [256];" type_identifier (array_declarator "auStack_2d4 [256]" identifier [ number_literal ]) ;) (declaration "MHD_Daemon MStack_1d4;" type_identifier identifier ;) (declaration "MHD_Daemon *pMStack_54;" type_identifier (pointer_declarator "*pMStack_54" * identifier) ;) (declaration "MHD_Daemon *pMStack_50;" type_identifier (pointer_declarator "*pMStack_50" * identifier) ;) (declaration "MHD_Connection *pMStack_4c;" type_identifier (pointer_declarator "*pMStack_4c" * identifier) ;) (declaration "MHD_mutex_ *pMStack_48;" type_identifier (pointer_declarator "*pMStack_48" * identifier) ;) (expression_statement "pMVar25 = connection->daemon;" (assignment_expression "pMVar25 = connection->daemon" identifier = (field_expression "connection->daemon" identifier -> field_identifier)) ;) (if_statement "if ((pMVar25->options & 0x2000) == MHD_NO_FLAG) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    connection = unaff_s1;\n  }\n  else {\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }" if (parenthesized_expression "((pMVar25->options & 0x2000) == MHD_NO_FLAG)" ( (binary_expression "(pMVar25->options & 0x2000) == MHD_NO_FLAG" (parenthesized_expression "(pMVar25->options & 0x2000)" ( (binary_expression "pMVar25->options & 0x2000" (field_expression "pMVar25->options" identifier -> field_identifier) & number_literal) )) == identifier) )) (compound_statement "{\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    connection = unaff_s1;\n  }" { (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" (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,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" ( (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 + -0x3514" identifier + number_literal) ))) ;) (expression_statement "connection = unaff_s1;" (assignment_expression "connection = unaff_s1" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = &pMVar25->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    connection->resuming = true;\n    pMVar25->resuming = true;\n    iVar3 = (*(code *)puVar2)(unaff_s2);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }\n  }" { (expression_statement "unaff_s2 = &pMVar25->cleanup_connection_mutex;" (assignment_expression "unaff_s2 = &pMVar25->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar25->cleanup_connection_mutex" & (field_expression "pMVar25->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" (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 "(unaff_s2)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar2 = PTR_pthread_mutex_unlock_0003f33c" identifier = 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 "connection->resuming = true;" (assignment_expression "connection->resuming = true" (field_expression "connection->resuming" identifier -> field_identifier) = true) ;) (expression_statement "pMVar25->resuming = true;" (assignment_expression "pMVar25->resuming = true" (field_expression "pMVar25->resuming" identifier -> field_identifier) = true) ;) (expression_statement "iVar3 = (*(code *)puVar2)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)puVar2)(unaff_s2)" identifier = (call_expression "(*(code *)puVar2)(unaff_s2)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = (pMVar25->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }\n      return;\n    }" { (expression_statement "iVar3 = (pMVar25->itc).fd;" (assignment_expression "iVar3 = (pMVar25->itc).fd" identifier = (field_expression "(pMVar25->itc).fd" (parenthesized_expression "(pMVar25->itc)" ( (field_expression "pMVar25->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }" if (parenthesized_expression "(((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb))" ( (binary_expression "((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)) &&\n         (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" (parenthesized_expression "((iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1))" ( (binary_expression "(iVar3 != -1) &&\n          (iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)" (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1)" ( (comma_expression "iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8), iVar3 < 1" (assignment_expression "iVar3 = (*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)(iVar3,PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,PTR_DAT_0003f05c + -0x28d8,8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) , (binary_expression "iVar3 < 1" identifier < number_literal)) ))) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) (compound_statement "{\n        MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);\n        return;\n      }" { (expression_statement "MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc);" (call_expression "MHD_DLOG(pMVar25,PTR_DAT_0003f05c + -0x34cc)" identifier (argument_list "(pMVar25,PTR_DAT_0003f05c + -0x34cc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x34cc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) }))) (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\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,0xb06,\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) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;" statement_identifier : (expression_statement "connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;" (assignment_expression "connection_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" identifier = (pointer_expression "*(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" * (cast_expression "(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) (expression_statement "pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0);" (assignment_expression "pMVar23 = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0)" identifier = (cast_expression "(MHD_Daemon *)(PTR_DAT_0003f05c + -0x51e0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0003f05c + -0x51e0)" ( (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) )))) ;) (expression_statement "pcVar36 = *(code **)PTR_mhd_panic_0003f070;" (assignment_expression "pcVar36 = *(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 "p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0);" (assignment_expression "p = (MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0)" identifier = (cast_expression "(MHD_Daemon *)(PTR_DAT_0003f05c + -0x40a0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0003f05c + -0x40a0)" ( (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) )))) ;) (expression_statement "(*pcVar36)(connection_00,p,0xb01);" (call_expression "(*pcVar36)(connection_00,p,0xb01)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(connection_00,p,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar4 = *(int **)(pcVar36 + 0x23748);" (assignment_expression "piVar4 = *(int **)(pcVar36 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x23748)" * (cast_expression "(int **)(pcVar36 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23748)" ( (binary_expression "pcVar36 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "puVar33 = auStack_368 + 0xc;" (assignment_expression "puVar33 = auStack_368 + 0xc" identifier = (binary_expression "auStack_368 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar30 = 0x8000001f;" (assignment_expression "uVar30 = 0x8000001f" identifier = number_literal) ;) (expression_statement "daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "daemon_00 = (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_54 = (MHD_Daemon *)*piVar4;" (assignment_expression "pMStack_54 = (MHD_Daemon *)*piVar4" identifier = (cast_expression "(MHD_Daemon *)*piVar4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL);" (assignment_expression "pMVar29 = (MHD_Daemon *)(daemon_00->options & MHD_USE_POLL)" identifier = (cast_expression "(MHD_Daemon *)(daemon_00->options & MHD_USE_POLL)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(daemon_00->options & MHD_USE_POLL)" ( (binary_expression "daemon_00->options & MHD_USE_POLL" (field_expression "daemon_00->options" identifier -> field_identifier) & identifier) )))) ;) (expression_statement "pMStack_50 = pMVar25;" (assignment_expression "pMStack_50 = pMVar25" identifier = identifier) ;) (expression_statement "pMStack_4c = connection;" (assignment_expression "pMStack_4c = connection" identifier = identifier) ;) (expression_statement "pMStack_48 = unaff_s2;" (assignment_expression "pMStack_48 = unaff_s2" identifier = identifier) ;) (expression_statement "pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))();" (assignment_expression "pvVar5 = (void *)(**(code **)(pcVar36 + 0x23740))()" identifier = (cast_expression "(void *)(**(code **)(pcVar36 + 0x23740))()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23740))" ( (pointer_expression "**(code **)(pcVar36 + 0x23740)" * (pointer_expression "*(code **)(pcVar36 + 0x23740)" * (cast_expression "(code **)(pcVar36 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23740)" ( (binary_expression "pcVar36 + 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 = pvVar5;" (assignment_expression "connection_00->uri_log_callback_cls = pvVar5" (field_expression "connection_00->uri_log_callback_cls" identifier -> field_identifier) = identifier) ;) (expression_statement "ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974);" (assignment_expression "ws = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7974)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234e0) + -0x7974)" ( (binary_expression "*(int *)(pcVar36 + 0x234e0) + -0x7974" (pointer_expression "*(int *)(pcVar36 + 0x234e0)" * (cast_expression "(int *)(pcVar36 + 0x234e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234e0)" ( (binary_expression "pcVar36 + 0x234e0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pMVar25 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar25 = (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  daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;" statement_identifier : (expression_statement "daemon = (MHD_Daemon *)(uint)daemon_00->shutdown;" (assignment_expression "daemon = (MHD_Daemon *)(uint)daemon_00->shutdown" identifier = (cast_expression "(MHD_Daemon *)(uint)daemon_00->shutdown" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)daemon_00->shutdown" ( (type_descriptor "uint" type_identifier) ) (field_expression "daemon_00->shutdown" identifier -> field_identifier)))) ;)) (if_statement "if (daemon != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon_00->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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();\n    }\n    pMVar21 = (MHD_Daemon *)0x8;\n    if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(daemon != (MHD_Daemon *)0x0)" ( (binary_expression "daemon != (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_00->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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();\n    }\n    pMVar21 = (MHD_Daemon *)0x8;\n    if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(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_00->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_00->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_00->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_00->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }" if (parenthesized_expression "(daemon_00->shutdown == false)" ( (binary_expression "daemon_00->shutdown == false" (field_expression "daemon_00->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 **)(pcVar36 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }" statement_identifier : (if_statement "if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar36 + 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 **)(pcVar36 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }" { (expression_statement "(**(code **)(pcVar36 + 0x23734))();" (call_expression "(**(code **)(pcVar36 + 0x23734))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23734))" ( (pointer_expression "**(code **)(pcVar36 + 0x23734)" * (pointer_expression "*(code **)(pcVar36 + 0x23734)" * (cast_expression "(code **)(pcVar36 + 0x23734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23734)" ( (binary_expression "pcVar36 + 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 **)(pcVar36 + 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 **)(pcVar36 + 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 **)(pcVar36 + 0x235c4))();" (call_expression "(**(code **)(pcVar36 + 0x235c4))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x235c4))" ( (pointer_expression "**(code **)(pcVar36 + 0x235c4)" * (pointer_expression "*(code **)(pcVar36 + 0x235c4)" * (cast_expression "(code **)(pcVar36 + 0x235c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x235c4)" ( (binary_expression "pcVar36 + 0x235c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pMVar21 = (MHD_Daemon *)0x8;" (assignment_expression "pMVar21 = (MHD_Daemon *)0x8" identifier = (cast_expression "(MHD_Daemon *)0x8" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((daemon_00->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(char *)p);\n      }\n    }" if (parenthesized_expression "((daemon_00->itc).fd != -1)" ( (binary_expression "(daemon_00->itc).fd != -1" (field_expression "(daemon_00->itc).fd" (parenthesized_expression "(daemon_00->itc)" ( (field_expression "daemon_00->itc" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar36 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(char *)p);\n      }\n    }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x28d8)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x28d8)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x28d8" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x2367c))();" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x2367c))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x2367c))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x2367c))" ( (pointer_expression "**(code **)(pcVar36 + 0x2367c)" * (pointer_expression "*(code **)(pcVar36 + 0x2367c)" * (cast_expression "(code **)(pcVar36 + 0x2367c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2367c)" ( (binary_expression "pcVar36 + 0x2367c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(char *)p);\n      }" if (parenthesized_expression "((iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb))" ( (binary_expression "(iVar3 < 1) && (piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)" (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb)" ( (comma_expression "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))(), *piVar9 != 0xb" (assignment_expression "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar9 != 0xb" (pointer_expression "*piVar9" * identifier) != number_literal)) ))) )) (compound_statement "{\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon_00,(char *)p);\n      }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x341c)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x341c)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x341c" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(daemon_00,(char *)p);" (call_expression "MHD_DLOG(daemon_00,(char *)p)" identifier (argument_list "(daemon_00,(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_00->connection_timeout;" (assignment_expression "unaff_s7 = (MHD_Daemon *)daemon_00->connection_timeout" identifier = (cast_expression "(MHD_Daemon *)daemon_00->connection_timeout" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "daemon_00->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    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;\n    pMVar25 = unaff_s6;\n    if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_368._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_368._12_4_ = pMVar28;\n    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->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    pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;\n    pMVar25 = unaff_s6;\n    if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_368._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_368._12_4_ = pMVar28;\n    iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "pMVar28 = (MHD_Connection *)(daemon_00->itc).fd;" (assignment_expression "pMVar28 = (MHD_Connection *)(daemon_00->itc).fd" identifier = (cast_expression "(MHD_Connection *)(daemon_00->itc).fd" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(daemon_00->itc).fd" (parenthesized_expression "(daemon_00->itc)" ( (field_expression "daemon_00->itc" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pMVar25 = unaff_s6;" (assignment_expression "pMVar25 = unaff_s6" identifier = identifier) ;) (if_statement "if (pMVar29 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pMVar29 == (MHD_Daemon *)0x0)" ( (binary_expression "pMVar29 == (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_368 + 0x14);\n      pMVar23 = p;\n      do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar23 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n      daemon = pMVar21;\n      pMVar29 = pMVar25;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar25,(char *)p,pMVar21);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "p = (MHD_Daemon *)(auStack_368 + 0x14);" (assignment_expression "p = (MHD_Daemon *)(auStack_368 + 0x14)" identifier = (cast_expression "(MHD_Daemon *)(auStack_368 + 0x14)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_368 + 0x14)" ( (binary_expression "auStack_368 + 0x14" identifier + number_literal) )))) ;) (expression_statement "pMVar23 = p;" (assignment_expression "pMVar23 = p" identifier = identifier) ;) (do_statement "do {\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      } while (pMVar23 != (MHD_Daemon *)auStack_2d4);" do (compound_statement "{\n        pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;\n      }" { (expression_statement "pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar23->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar23->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls;" (assignment_expression "pMVar23 = (MHD_Daemon *)&pMVar23->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar23->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar23->default_handler_cls" & (field_expression "pMVar23->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pMVar23 != (MHD_Daemon *)auStack_2d4)" ( (binary_expression "pMVar23 != (MHD_Daemon *)auStack_2d4" identifier != (cast_expression "(MHD_Daemon *)auStack_2d4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "pMVar23 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar23 = (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)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400)" identifier (argument_list "((MHD_socket)pMVar28,(fd_set *)p,(MHD_socket *)0x0,0x400)" ( (cast_expression "(MHD_socket)pMVar28" ( (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 "pMVar23 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar23 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0)" identifier = (call_expression "(**(code **)(pcVar36 + 0x23720))((daemon_00->itc).fd + 1,p,0)" (parenthesized_expression "(**(code **)(pcVar36 + 0x23720))" ( (pointer_expression "**(code **)(pcVar36 + 0x23720)" * (pointer_expression "*(code **)(pcVar36 + 0x23720)" * (cast_expression "(code **)(pcVar36 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23720)" ( (binary_expression "pcVar36 + 0x23720" identifier + number_literal) ))))) )) (argument_list "((daemon_00->itc).fd + 1,p,0)" ( (binary_expression "(daemon_00->itc).fd + 1" (field_expression "(daemon_00->itc).fd" (parenthesized_expression "(daemon_00->itc)" ( (field_expression "daemon_00->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 "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar21 = (MHD_Daemon *)*puVar12;" (assignment_expression "pMVar21 = (MHD_Daemon *)*puVar12" identifier = (cast_expression "(MHD_Daemon *)*puVar12" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (if_statement "if (pMVar21 == (MHD_Daemon *)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pMVar21 == (MHD_Daemon *)0x4)" ( (binary_expression "pMVar21 == (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 "pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar25 = (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 "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);" (assignment_expression "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x236b0))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236b0)" * (pointer_expression "*(code **)(pcVar36 + 0x236b0)" * (cast_expression "(code **)(pcVar36 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236b0)" ( (binary_expression "pcVar36 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier ))))) ;) (expression_statement "daemon = pMVar21;" (assignment_expression "daemon = pMVar21" identifier = identifier) ;) (expression_statement "pMVar29 = pMVar25;" (assignment_expression "pMVar29 = pMVar25" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);" statement_identifier : (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x3470)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x3470" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "MHD_DLOG(pMVar25,(char *)p,pMVar21);" (call_expression "MHD_DLOG(pMVar25,(char *)p,pMVar21)" identifier (argument_list "(pMVar25,(char *)p,pMVar21)" ( 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_368._16_4_ = &Elf32_Ehdr_00010000;" (assignment_expression "auStack_368._16_4_ = &Elf32_Ehdr_00010000" (field_expression "auStack_368._16_4_" identifier . field_identifier) = (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) ;) (expression_statement "auStack_368._12_4_ = pMVar28;" (assignment_expression "auStack_368._12_4_ = pMVar28" (field_expression "auStack_368._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar36 + 0x236e0))(puVar33,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236e0)" * (pointer_expression "*(code **)(pcVar36 + 0x236e0)" * (cast_expression "(code **)(pcVar36 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236e0)" ( (binary_expression "pcVar36 + 0x236e0" identifier + number_literal) ))))) )) (argument_list "(puVar33,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->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      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n      if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\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 "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar9 != 4) {\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar9 != 4)" ( (binary_expression "*piVar9 != 4" (pointer_expression "*piVar9" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar6 = (**(code **)(pcVar36 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n        MHD_DLOG(daemon,(char *)p,uVar6);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        daemon = (MHD_Daemon *)connection_00->cleanup_head;" statement_identifier : (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 "uVar6 = (**(code **)(pcVar36 + 0x236b0))();" (assignment_expression "uVar6 = (**(code **)(pcVar36 + 0x236b0))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x236b0))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236b0)" * (pointer_expression "*(code **)(pcVar36 + 0x236b0)" * (cast_expression "(code **)(pcVar36 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236b0)" ( (binary_expression "pcVar36 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x3450)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x3450" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(daemon,(char *)p,uVar6);" (call_expression "MHD_DLOG(daemon,(char *)p,uVar6)" identifier (argument_list "(daemon,(char *)p,uVar6)" ( 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_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" else (compound_statement "{\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_368;\n      (**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" { (labeled_statement "LAB_0001c380:\n      p = (MHD_Daemon *)auStack_368;" statement_identifier : (expression_statement "p = (MHD_Daemon *)auStack_368;" (assignment_expression "p = (MHD_Daemon *)auStack_368" identifier = (cast_expression "(MHD_Daemon *)auStack_368" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8);" (call_expression "(**(code **)(pcVar36 + 0x23774))((daemon_00->itc).fd,p,8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x23774))" ( (pointer_expression "**(code **)(pcVar36 + 0x23774)" * (pointer_expression "*(code **)(pcVar36 + 0x23774)" * (cast_expression "(code **)(pcVar36 + 0x23774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23774)" ( (binary_expression "pcVar36 + 0x23774" identifier + number_literal) ))))) )) (argument_list "((daemon_00->itc).fd,p,8)" ( (field_expression "(daemon_00->itc).fd" (parenthesized_expression "(daemon_00->itc)" ( (field_expression "daemon_00->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 (pMVar25 != (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 "(pMVar25 != (MHD_Daemon *)0x0)" ( (binary_expression "pMVar25 != (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 "pMVar25 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar25 = (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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar24 = (MHD_Daemon **)0x0;\n    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    set = (MHD_Daemon *)(auStack_368 + 0x14);\n    unaff_s6 = (MHD_Daemon *)auStack_2d4;\n    pMVar21 = set;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);\n    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);\n    pMVar21 = unaff_s6;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);\n    do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);\n    MStack_378 = -1;\n    if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }\n    pMVar23 = unaff_s7;\n    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);\n    if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar24 = (MHD_Daemon **)0x0;\n    if (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    set = (MHD_Daemon *)(auStack_368 + 0x14);\n    unaff_s6 = (MHD_Daemon *)auStack_2d4;\n    pMVar21 = set;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);\n    unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);\n    pMVar21 = unaff_s6;\n    do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);\n    do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);\n    MStack_378 = -1;\n    if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }\n    pMVar23 = unaff_s7;\n    iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);\n    if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = 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      tVar8 = MHD_monotonic_sec_counter();\n      iVar3 = tVar8 - (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_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "tVar8 = MHD_monotonic_sec_counter();" (assignment_expression "tVar8 = MHD_monotonic_sec_counter()" identifier = (call_expression "MHD_monotonic_sec_counter()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = tVar8 - (connection_00->per_ip_connection_mutex).__data.__lock;" (assignment_expression "iVar3 = tVar8 - (connection_00->per_ip_connection_mutex).__data.__lock" identifier = (binary_expression "tVar8 - (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_370 = unaff_s7;" (assignment_expression "pMStack_370 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (expression_statement "ppMVar24 = (MHD_Daemon **)0x0;" (assignment_expression "ppMVar24 = (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 (pMVar29 != (MHD_Daemon *)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pMVar29 != (MHD_Daemon *)0x0)" ( (binary_expression "pMVar29 != (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_368 + 0x14);" statement_identifier : (expression_statement "set = (MHD_Daemon *)(auStack_368 + 0x14);" (assignment_expression "set = (MHD_Daemon *)(auStack_368 + 0x14)" identifier = (cast_expression "(MHD_Daemon *)(auStack_368 + 0x14)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_368 + 0x14)" ( (binary_expression "auStack_368 + 0x14" identifier + number_literal) )))) ;)) (expression_statement "unaff_s6 = (MHD_Daemon *)auStack_2d4;" (assignment_expression "unaff_s6 = (MHD_Daemon *)auStack_2d4" identifier = (cast_expression "(MHD_Daemon *)auStack_2d4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pMVar21 = set;" (assignment_expression "pMVar21 = set" identifier = identifier) ;) (do_statement "do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    } while (unaff_s6 != pMVar21);" do (compound_statement "{\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n    }" { (expression_statement "pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar21->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;" (assignment_expression "pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar21->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar21->default_handler_cls" & (field_expression "pMVar21->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(unaff_s6 != pMVar21)" ( (binary_expression "unaff_s6 != pMVar21" identifier != identifier) )) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80);" (assignment_expression "unaff_s7 = (MHD_Daemon *)(auStack_2d4 + 0x80)" identifier = (cast_expression "(MHD_Daemon *)(auStack_2d4 + 0x80)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_2d4 + 0x80)" ( (binary_expression "auStack_2d4 + 0x80" identifier + number_literal) )))) ;) (expression_statement "pMVar21 = unaff_s6;" (assignment_expression "pMVar21 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    } while (unaff_s7 != pMVar21);" do (compound_statement "{\n      pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;\n      pMVar7 = unaff_s7;\n    }" { (expression_statement "pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar21->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar21->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls;" (assignment_expression "pMVar21 = (MHD_Daemon *)&pMVar21->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar21->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar21->default_handler_cls" & (field_expression "pMVar21->default_handler_cls" identifier -> field_identifier)))) ;) (expression_statement "pMVar7 = unaff_s7;" (assignment_expression "pMVar7 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pMVar21)" ( (binary_expression "unaff_s7 != pMVar21" identifier != identifier) )) ;) (do_statement "do {\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    } while (&MStack_1d4 != pMVar7);" do (compound_statement "{\n      pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;\n      pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;\n    }" { (expression_statement "pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar7->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar7->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls;" (assignment_expression "pMVar7 = (MHD_Daemon *)&pMVar7->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar7->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar7->default_handler_cls" & (field_expression "pMVar7->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&MStack_1d4 != pMVar7)" ( (binary_expression "&MStack_1d4 != pMVar7" (pointer_expression "&MStack_1d4" & identifier) != identifier) )) ;) (expression_statement "MStack_378 = -1;" (assignment_expression "MStack_378 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 == 1) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }\n    else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar13 = MStack_378 + 1;\n    }" { (expression_statement "pMVar23 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar23 = (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_378,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)unaff_s6,&MStack_378,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_378" & 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      iVar13 = MStack_378 + 1;" statement_identifier : (expression_statement "iVar13 = MStack_378 + 1;" (assignment_expression "iVar13 = MStack_378 + 1" identifier = (binary_expression "MStack_378 + 1" identifier + number_literal)) ;)) }) (else_clause "else if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }" else (if_statement "if (iVar3 == 0) {\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pMVar23 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      iVar13 = MStack_378 + 1;\n    }" { (expression_statement "pMVar23 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar23 = (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_378,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_378,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_378" & 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 ;)) (expression_statement "iVar13 = MStack_378 + 1;" (assignment_expression "iVar13 = MStack_378 + 1" identifier = (binary_expression "MStack_378 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }" else (compound_statement "{\n      if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }\n      iVar13 = 0;\n      if (iVar3 == 3) goto LAB_0001bcc4;\n    }" { (if_statement "if (iVar3 == 2) {\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n        pMVar23 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);\n        MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n        goto LAB_0001bcc4;\n      }" { (expression_statement "pMVar23 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar23 = (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_378,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_378,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_378" & 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 ;)) (labeled_statement "LAB_0001c364:\n        p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);" statement_identifier : (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x348c)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x348c)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x348c" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 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_0001bcc4;" goto statement_identifier ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (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 ;)) }))))) (expression_statement "pMVar23 = unaff_s7;" (assignment_expression "pMVar23 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6)" identifier = (call_expression "(**(code **)(pcVar36 + 0x23720))(iVar13,set,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar36 + 0x23720))" ( (pointer_expression "**(code **)(pcVar36 + 0x23720)" * (pointer_expression "*(code **)(pcVar36 + 0x23720)" * (cast_expression "(code **)(pcVar36 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23720)" ( (binary_expression "pcVar36 + 0x23720" identifier + number_literal) ))))) )) (argument_list "(iVar13,set,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      pMVar21 = (MHD_Daemon *)*puVar12;\n      p = set;\n      unaff_s6 = pMVar21;\n      if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" { (expression_statement "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar21 = (MHD_Daemon *)*puVar12;" (assignment_expression "pMVar21 = (MHD_Daemon *)*puVar12" identifier = (cast_expression "(MHD_Daemon *)*puVar12" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "p = set;" (assignment_expression "p = set" identifier = identifier) ;) (expression_statement "unaff_s6 = pMVar21;" (assignment_expression "unaff_s6 = pMVar21" identifier = identifier) ;) (if_statement "if (pMVar21 != (MHD_Daemon *)0x4) {\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }" if (parenthesized_expression "(pMVar21 != (MHD_Daemon *)0x4)" ( (binary_expression "pMVar21 != (MHD_Daemon *)0x4" identifier != (cast_expression "(MHD_Daemon *)0x4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;\n        pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);\n        daemon = pMVar25;\n        goto LAB_0001c18c;\n      }" { (expression_statement "pMVar25 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar25 = (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 "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21);" (assignment_expression "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(pMVar21)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x236b0))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236b0)" * (pointer_expression "*(code **)(pcVar36 + 0x236b0)" * (cast_expression "(code **)(pcVar36 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236b0)" ( (binary_expression "pcVar36 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier ))))) ;) (expression_statement "daemon = pMVar25;" (assignment_expression "daemon = pMVar25" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" 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      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);\n      bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0;\n      unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;\n      unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n      iVar3 = (**(code **)(pcVar36 + 0x23708))();\n      force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;\n      pMVar23 = (MHD_Daemon *)(uint)force_close;\n      p = unaff_s6;\n      pMVar21 = 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_0001c01c;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4]);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4])" identifier = (call_expression "(**(code **)(pcVar36 + 0x23708))\n                        ((&(connection_00->per_ip_connection_mutex).__align)[4])" (parenthesized_expression "(**(code **)(pcVar36 + 0x23708))" ( (pointer_expression "**(code **)(pcVar36 + 0x23708)" * (pointer_expression "*(code **)(pcVar36 + 0x23708)" * (cast_expression "(code **)(pcVar36 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23708)" ( (binary_expression "pcVar36 + 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_368 + iVar3 * 4 + 0x14)) != 0;" (assignment_expression "bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + iVar3 * 4 + 0x14))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n              *(uint *)(auStack_368 + 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_368 + iVar3 * 4 + 0x14)" * (cast_expression "(uint *)(auStack_368 + iVar3 * 4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_368 + iVar3 * 4 + 0x14)" ( (binary_expression "auStack_368 + iVar3 * 4 + 0x14" (binary_expression "auStack_368 + 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 **)(pcVar36 + 0x23708))();" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23708))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x23708))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23708))" ( (pointer_expression "**(code **)(pcVar36 + 0x23708)" * (pointer_expression "*(code **)(pcVar36 + 0x23708)" * (cast_expression "(code **)(pcVar36 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23708)" ( (binary_expression "pcVar36 + 0x23708" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0;" (assignment_expression "write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + 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_2d4 + iVar3 * 4)" * (cast_expression "(uint *)(auStack_2d4 + iVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_2d4 + iVar3 * 4)" ( (binary_expression "auStack_2d4 + 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 **)(pcVar36 + 0x23708))();" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23708))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x23708))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23708))" ( (pointer_expression "**(code **)(pcVar36 + 0x23708)" * (pointer_expression "*(code **)(pcVar36 + 0x23708)" * (cast_expression "(code **)(pcVar36 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23708)" ( (binary_expression "pcVar36 + 0x23708" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0;" (assignment_expression "force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + iVar3 * 4 + 0x80))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                    *(uint *)(auStack_2d4 + 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_2d4 + iVar3 * 4 + 0x80)" * (cast_expression "(uint *)(auStack_2d4 + iVar3 * 4 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_2d4 + iVar3 * 4 + 0x80)" ( (binary_expression "auStack_2d4 + iVar3 * 4 + 0x80" (binary_expression "auStack_2d4 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) ))))) )) != number_literal)) ;) (expression_statement "pMVar23 = (MHD_Daemon *)(uint)force_close;" (assignment_expression "pMVar23 = (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 "pMVar21 = unaff_s7;" (assignment_expression "pMVar21 = 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_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_370 = (MHD_Daemon *)0x0;" (assignment_expression "pMStack_370 = (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_36c = 0;" statement_identifier : (expression_statement "uStack_36c = 0;" (assignment_expression "uStack_36c = 0" identifier = number_literal) ;)) (expression_statement "ppMVar24 = &pMStack_370;" (assignment_expression "ppMVar24 = &pMStack_370" identifier = (pointer_expression "&pMStack_370" & identifier)) ;) (if_statement "if (pMVar29 == (MHD_Daemon *)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pMVar29 == (MHD_Daemon *)0x0)" ( (binary_expression "pMVar29 == (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_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];" statement_identifier : (expression_statement "auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];" (assignment_expression "auStack_368._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4]" (field_expression "auStack_368._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_368._16_4_ = (MHD_Connection *)0x0;" (assignment_expression "auStack_368._16_4_ = (MHD_Connection *)0x0" (field_expression "auStack_368._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    if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 != 3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }\n    if (iVar3 != 3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (iVar3 == 0) {\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      auStack_368._16_4_ = &DAT_00030000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "auStack_368._16_4_ = &DAT_00030000;" (assignment_expression "auStack_368._16_4_ = &DAT_00030000" (field_expression "auStack_368._16_4_" identifier . field_identifier) = (pointer_expression "&DAT_00030000" & identifier)) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (iVar3 == 2) {\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      auStack_368._16_4_ = (MHD_Connection *)0x20000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "auStack_368._16_4_ = (MHD_Connection *)0x20000;" (assignment_expression "auStack_368._16_4_ = (MHD_Connection *)0x20000" (field_expression "auStack_368._16_4_" identifier . field_identifier) = (cast_expression "(MHD_Connection *)0x20000" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (iVar3 != 3) goto LAB_0001bd54;" if (parenthesized_expression "(iVar3 != 3)" ( (binary_expression "iVar3 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;)) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "auStack_368._16_4_ = (MHD_Connection *)0x60000;" (assignment_expression "auStack_368._16_4_ = (MHD_Connection *)0x60000" (field_expression "auStack_368._16_4_" identifier . field_identifier) = (cast_expression "(MHD_Connection *)0x60000" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001bd54:\n  if (ppMVar24 == (MHD_Daemon **)0x0) {\n    iVar3 = -1;\n  }\n  else {\n    iVar3 = (int)pMStack_370 * 1000;\n  }" statement_identifier : (if_statement "if (ppMVar24 == (MHD_Daemon **)0x0) {\n    iVar3 = -1;\n  }\n  else {\n    iVar3 = (int)pMStack_370 * 1000;\n  }" if (parenthesized_expression "(ppMVar24 == (MHD_Daemon **)0x0)" ( (binary_expression "ppMVar24 == (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_370 * 1000;\n  }" else (compound_statement "{\n    iVar3 = (int)pMStack_370 * 1000;\n  }" { (expression_statement "iVar3 = (int)pMStack_370 * 1000;" (assignment_expression "iVar3 = (int)pMStack_370 * 1000" identifier = (binary_expression "(int)pMStack_370 * 1000" (cast_expression "(int)pMStack_370" ( (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 **)(pcVar36 + 0x236e0))(puVar33,1,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3)" identifier = (call_expression "(**(code **)(pcVar36 + 0x236e0))(puVar33,1,iVar3)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236e0)" * (pointer_expression "*(code **)(pcVar36 + 0x236e0)" * (cast_expression "(code **)(pcVar36 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236e0)" ( (binary_expression "pcVar36 + 0x236e0" identifier + number_literal) ))))) )) (argument_list "(puVar33,1,iVar3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    if (*piVar9 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    if (*piVar9 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" { (expression_statement "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar9 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar9 != 4)" ( (binary_expression "*piVar9 != 4" (pointer_expression "*piVar9" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f);" (assignment_expression "pMVar21 = (MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f)" identifier = (cast_expression "(MHD_Daemon *)((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f)" ( (binary_expression "(uint)(auStack_368._16_4_ << 0x1d) >> 0x1f" (call_expression "(uint)(auStack_368._16_4_ << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(auStack_368._16_4_ << 0x1d)" ( (binary_expression "auStack_368._16_4_ << 0x1d" (field_expression "auStack_368._16_4_" identifier . field_identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bVar1 = (auStack_368._16_4_ & 0xba) != 0;" (assignment_expression "bVar1 = (auStack_368._16_4_ & 0xba) != 0" identifier = (binary_expression "(auStack_368._16_4_ & 0xba) != 0" (parenthesized_expression "(auStack_368._16_4_ & 0xba)" ( (binary_expression "auStack_368._16_4_ & 0xba" (field_expression "auStack_368._16_4_" identifier . field_identifier) & number_literal) )) != number_literal)) ;) (expression_statement "pMVar23 = (MHD_Daemon *)(uint)bVar1;" (assignment_expression "pMVar23 = (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_368._18_2_ & 1);" (assignment_expression "p = (MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1)" identifier = (cast_expression "(MHD_Daemon *)((int)(short)auStack_368._18_2_ & 1)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(short)auStack_368._18_2_ & 1)" ( (binary_expression "(int)(short)auStack_368._18_2_ & 1" (cast_expression "(int)(short)auStack_368._18_2_" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)auStack_368._18_2_" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "auStack_368._18_2_" identifier . field_identifier))) & number_literal) )))) ;) (expression_statement "iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f,0),bVar1);" (assignment_expression "iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f,0),bVar1)" identifier = (call_expression "call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f,0),bVar1)" identifier (argument_list "((MHD_Connection *)connection_00,SUB41(p,0),\n                        SUB41((uint)(auStack_368._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_368._16_4_ << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(auStack_368._16_4_ << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(auStack_368._16_4_ << 0x1d) >> 0x1f" (call_expression "(uint)(auStack_368._16_4_ << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(auStack_368._16_4_ << 0x1d)" ( (binary_expression "auStack_368._16_4_ << 0x1d" (field_expression "auStack_368._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_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_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" statement_identifier : (if_statement "if ((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" if (parenthesized_expression "((daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0'))" ( (binary_expression "(daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')" (parenthesized_expression "(daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0)" ( (binary_expression "daemon_00->notify_completed != (MHD_RequestCompletedCallback)0x0" (field_expression "daemon_00->notify_completed" identifier -> field_identifier) != (cast_expression "(MHD_RequestCompletedCallback)0x0" ( (type_descriptor "MHD_RequestCompletedCallback" type_identifier) ) number_literal)) )) && (parenthesized_expression "(pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')" ( (comma_expression "pMVar23 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0'" (assignment_expression "pMVar23 = (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    pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" { (expression_statement "pMVar21 = (MHD_Daemon *)&connection_00->eready_urh_tail;" (assignment_expression "pMVar21 = (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_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);" (call_expression "(*daemon_00->notify_completed)\n              (daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK)" (parenthesized_expression "(*daemon_00->notify_completed)" ( (pointer_expression "*daemon_00->notify_completed" * (field_expression "daemon_00->notify_completed" identifier -> field_identifier)) )) (argument_list "(daemon_00->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar21,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK)" ( (field_expression "daemon_00->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 **)pMVar21" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , identifier ))) ;) }))) (expression_statement "pMVar28 = connection_00->cleanup_head;" (assignment_expression "pMVar28 = 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 "uVar18 = pMVar28->suspended_dummy;" (assignment_expression "uVar18 = pMVar28->suspended_dummy" identifier = (field_expression "pMVar28->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 ((uVar18 & 0x42) == 2) {\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));\n    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);\n    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n    pMVar21 = daemon;\n    MHD_DLOG(daemon_00,(char *)p);\n  }\n  else if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }" if (parenthesized_expression "((uVar18 & 0x42) == 2)" ( (binary_expression "(uVar18 & 0x42) == 2" (parenthesized_expression "(uVar18 & 0x42)" ( (binary_expression "uVar18 & 0x42" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));\n    daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);\n    daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);\n    pMVar21 = daemon;\n    MHD_DLOG(daemon_00,(char *)p);\n  }" { (expression_statement "uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);" (assignment_expression "uVar30 = *(undefined4 *)(pcVar36 + 0x234e0)" identifier = (pointer_expression "*(undefined4 *)(pcVar36 + 0x234e0)" * (cast_expression "(undefined4 *)(pcVar36 + 0x234e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234e0)" ( (binary_expression "pcVar36 + 0x234e0" identifier + number_literal) ))))) ;) (expression_statement "pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4));" (assignment_expression "pMVar29 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4))" ( (binary_expression "&DAT_00007e20 + *(int *)(pcVar36 + 0x234b4)" (pointer_expression "&DAT_00007e20" & identifier) + (pointer_expression "*(int *)(pcVar36 + 0x234b4)" * (cast_expression "(int *)(pcVar36 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b4)" ( (binary_expression "pcVar36 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0);" (assignment_expression "daemon_00 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234e0) + -0x7be0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234e0) + -0x7be0)" ( (binary_expression "*(int *)(pcVar36 + 0x234e0) + -0x7be0" (pointer_expression "*(int *)(pcVar36 + 0x234e0)" * (cast_expression "(int *)(pcVar36 + 0x234e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234e0)" ( (binary_expression "pcVar36 + 0x234e0" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    } while (daemon == (MHD_Daemon *)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar21 = ws;\n      pMVar23 = daemon;\n      iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();\n      daemon = (MHD_Daemon *)*puVar12;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = &MStack_1d4;\n        pMVar25 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);\n        do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);\n        do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);\n        MStack_374 = -1;\n        pMVar21 = ws;\n        pMVar23 = daemon;\n        _Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);\n        if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_374 != -1) break;\nLAB_0001c4bc:\n        pMVar23 = daemon;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar21 = ws;\n      }" { (expression_statement "unaff_s7 = &MStack_1d4;" (assignment_expression "unaff_s7 = &MStack_1d4" identifier = (pointer_expression "&MStack_1d4" & identifier)) ;) (expression_statement "pMVar25 = unaff_s7;" (assignment_expression "pMVar25 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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             (ws = (MHD_Daemon *)&MStack_1d4.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             (ws = (MHD_Daemon *)&MStack_1d4.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             (ws = (MHD_Daemon *)&MStack_1d4.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             (ws = (MHD_Daemon *)&MStack_1d4.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             (ws = (MHD_Daemon *)&MStack_1d4.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0))" ( (binary_expression "(unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (ws = (MHD_Daemon *)&MStack_1d4.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 "(ws = (MHD_Daemon *)&MStack_1d4.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)" ( (comma_expression "ws = (MHD_Daemon *)&MStack_1d4.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0" (assignment_expression "ws = (MHD_Daemon *)&MStack_1d4.pool_increment" identifier = (cast_expression "(MHD_Daemon *)&MStack_1d4.pool_increment" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_1d4.pool_increment" & (field_expression "MStack_1d4.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          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        } while (ws != pMVar25);" do (compound_statement "{\n          ws = (MHD_Daemon *)&MStack_1d4.pool_increment;\n          pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;\n          daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n          psVar10 = (size_t *)ws;\n        }" { (expression_statement "ws = (MHD_Daemon *)&MStack_1d4.pool_increment;" (assignment_expression "ws = (MHD_Daemon *)&MStack_1d4.pool_increment" identifier = (cast_expression "(MHD_Daemon *)&MStack_1d4.pool_increment" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_1d4.pool_increment" & (field_expression "MStack_1d4.pool_increment" identifier . field_identifier)))) ;) (expression_statement "pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar25->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar25->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls;" (assignment_expression "pMVar25 = (MHD_Daemon *)&pMVar25->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar25->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar25->default_handler_cls" & (field_expression "pMVar25->default_handler_cls" identifier -> field_identifier)))) ;) (expression_statement "daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client;" (assignment_expression "daemon = (MHD_Daemon *)&MStack_1d4.strict_for_client" identifier = (cast_expression "(MHD_Daemon *)&MStack_1d4.strict_for_client" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_1d4.strict_for_client" & (field_expression "MStack_1d4.strict_for_client" identifier . field_identifier)))) ;) (expression_statement "psVar10 = (size_t *)ws;" (assignment_expression "psVar10 = (size_t *)ws" identifier = (cast_expression "(size_t *)ws" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(ws != pMVar25)" ( (binary_expression "ws != pMVar25" identifier != identifier) )) ;) (do_statement "do {\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        } while (daemon != (MHD_Daemon *)psVar10);" do (compound_statement "{\n          *psVar10 = 0;\n          psVar10 = psVar10 + 1;\n          ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;\n        }" { (expression_statement "*psVar10 = 0;" (assignment_expression "*psVar10 = 0" (pointer_expression "*psVar10" * identifier) = number_literal) ;) (expression_statement "psVar10 = psVar10 + 1;" (assignment_expression "psVar10 = psVar10 + 1" identifier = (binary_expression "psVar10 + 1" identifier + number_literal)) ;) (expression_statement "ppMVar11 = (MHD_UpgradeResponseHandle **)daemon;" (assignment_expression "ppMVar11 = (MHD_UpgradeResponseHandle **)daemon" identifier = (cast_expression "(MHD_UpgradeResponseHandle **)daemon" ( (type_descriptor "MHD_UpgradeResponseHandle **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }) while (parenthesized_expression "(daemon != (MHD_Daemon *)psVar10)" ( (binary_expression "daemon != (MHD_Daemon *)psVar10" identifier != (cast_expression "(MHD_Daemon *)psVar10" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (do_statement "do {\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar11 != &pMStack_54);" do (compound_statement "{\n          *ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar11 = ppMVar11 + 1;\n          puVar33 = (undefined1 *)0xffffffff;\n        }" { (expression_statement "*ppMVar11 = (MHD_UpgradeResponseHandle *)0x0;" (assignment_expression "*ppMVar11 = (MHD_UpgradeResponseHandle *)0x0" (pointer_expression "*ppMVar11" * identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppMVar11 = ppMVar11 + 1;" (assignment_expression "ppMVar11 = ppMVar11 + 1" identifier = (binary_expression "ppMVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar33 = (undefined1 *)0xffffffff;" (assignment_expression "puVar33 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "((MHD_Daemon **)ppMVar11 != &pMStack_54)" ( (binary_expression "(MHD_Daemon **)ppMVar11 != &pMStack_54" (cast_expression "(MHD_Daemon **)ppMVar11" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&pMStack_54" & identifier)) )) ;) (expression_statement "MStack_374 = -1;" (assignment_expression "MStack_374 = -1" identifier = number_literal) ;) (expression_statement "pMVar21 = ws;" (assignment_expression "pMVar21 = ws" identifier = identifier) ;) (expression_statement "pMVar23 = daemon;" (assignment_expression "pMVar23 = daemon" identifier = identifier) ;) (expression_statement "_Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400);" (assignment_expression "_Var16 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400)" identifier = (call_expression "urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,0x400)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                              (fd_set *)daemon,&MStack_374,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 *)ws" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)daemon" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&MStack_374" & identifier) , number_literal )))) ;) (if_statement "if (CONCAT31(extraout_var,_Var16) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var16) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var16) == 0" (call_expression "CONCAT31(extraout_var,_Var16)" identifier (argument_list "(extraout_var,_Var16)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n          p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3434)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x3434)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x3434" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 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_374 != -1) break;" if (parenthesized_expression "(MStack_374 != -1)" ( (binary_expression "MStack_374 != -1" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001c4bc:\n        pMVar23 = daemon;" statement_identifier : (expression_statement "pMVar23 = daemon;" (assignment_expression "pMVar23 = daemon" identifier = identifier) ;)) (expression_statement "urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon);" (call_expression "urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)ws,\n                       (fd_set *)daemon)" ( (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 *)ws" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)daemon" ( (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 "pMVar21 = ws;" (assignment_expression "pMVar21 = ws" 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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._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_368._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_368._4_4_ = (void *)0x0;\n      }" { (expression_statement "auStack_368._0_4_ = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "auStack_368._0_4_ = (MHD_AccessHandlerCallback)0x0" (field_expression "auStack_368._0_4_" identifier . field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "auStack_368._4_4_ = (void *)0x0;" (assignment_expression "auStack_368._4_4_ = (void *)0x0" (field_expression "auStack_368._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 "pMVar21 = ws;" (assignment_expression "pMVar21 = ws" identifier = identifier) ;) (expression_statement "pMVar23 = daemon;" (assignment_expression "pMVar23 = daemon" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x23720))(MStack_374 + 1)" identifier = (call_expression "(**(code **)(pcVar36 + 0x23720))(MStack_374 + 1)" (parenthesized_expression "(**(code **)(pcVar36 + 0x23720))" ( (pointer_expression "**(code **)(pcVar36 + 0x23720)" * (pointer_expression "*(code **)(pcVar36 + 0x23720)" * (cast_expression "(code **)(pcVar36 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23720)" ( (binary_expression "pcVar36 + 0x23720" identifier + number_literal) ))))) )) (argument_list "(MStack_374 + 1)" ( (binary_expression "MStack_374 + 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 "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "puVar12 = (uint *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "daemon = (MHD_Daemon *)*puVar12;" (assignment_expression "daemon = (MHD_Daemon *)*puVar12" identifier = (cast_expression "(MHD_Daemon *)*puVar12" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) }) while (parenthesized_expression "(daemon == (MHD_Daemon *)0x4)" ( (binary_expression "daemon == (MHD_Daemon *)0x4" identifier == (cast_expression "(MHD_Daemon *)0x4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "daemon_00 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "daemon_00 = (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 "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon);" (assignment_expression "pMVar23 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))(daemon)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x236b0))(daemon)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236b0)" * (pointer_expression "*(code **)(pcVar36 + 0x236b0)" * (cast_expression "(code **)(pcVar36 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236b0)" ( (binary_expression "pcVar36 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(daemon)" ( identifier ))))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3470)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x3470)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x3470" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pMVar21 = daemon;" (assignment_expression "pMVar21 = daemon" identifier = identifier) ;) (expression_statement "MHD_DLOG(daemon_00,(char *)p);" (call_expression "MHD_DLOG(daemon_00,(char *)p)" identifier (argument_list "(daemon_00,(char *)p)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }" else (if_statement "if ((uVar18 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }" if (parenthesized_expression "((uVar18 & 2) != 0)" ( (binary_expression "(uVar18 & 2) != 0" (parenthesized_expression "(uVar18 & 2)" ( (binary_expression "uVar18 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    p = (MHD_Daemon *)&MStack_1d4.strict_for_client;\n    MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));\n    MStack_1d4.priority_cache = (gnutls_priority_t)0x0;\n    daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));\n    uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);\n    MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);\n    MHD_DLOG(daemon,(char *)p);\n  }" { (expression_statement "p = (MHD_Daemon *)&MStack_1d4.strict_for_client;" (assignment_expression "p = (MHD_Daemon *)&MStack_1d4.strict_for_client" identifier = (cast_expression "(MHD_Daemon *)&MStack_1d4.strict_for_client" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_1d4.strict_for_client" & (field_expression "MStack_1d4.strict_for_client" identifier . field_identifier)))) ;) (expression_statement "MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0;" (assignment_expression "MStack_1d4.urh_head = (MHD_UpgradeResponseHandle *)0x0" (field_expression "MStack_1d4.urh_head" identifier . field_identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4));" (assignment_expression "pMVar29 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4))" ( (binary_expression "&DAT_00007b40 + *(int *)(pcVar36 + 0x234b4)" (pointer_expression "&DAT_00007b40" & identifier) + (pointer_expression "*(int *)(pcVar36 + 0x234b4)" * (cast_expression "(int *)(pcVar36 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b4)" ( (binary_expression "pcVar36 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "MStack_1d4.priority_cache = (gnutls_priority_t)0x0;" (assignment_expression "MStack_1d4.priority_cache = (gnutls_priority_t)0x0" (field_expression "MStack_1d4.priority_cache" identifier . field_identifier) = (cast_expression "(gnutls_priority_t)0x0" ( (type_descriptor "gnutls_priority_t" type_identifier) ) number_literal)) ;) (expression_statement "daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4));" (assignment_expression "daemon_00 = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4))" ( (binary_expression "&DAT_00007c40 + *(int *)(pcVar36 + 0x234b4)" (pointer_expression "&DAT_00007c40" & identifier) + (pointer_expression "*(int *)(pcVar36 + 0x234b4)" * (cast_expression "(int *)(pcVar36 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b4)" ( (binary_expression "pcVar36 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar30 = *(undefined4 *)(pcVar36 + 0x234e0);" (assignment_expression "uVar30 = *(undefined4 *)(pcVar36 + 0x234e0)" identifier = (pointer_expression "*(undefined4 *)(pcVar36 + 0x234e0)" * (cast_expression "(undefined4 *)(pcVar36 + 0x234e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234e0)" ( (binary_expression "pcVar36 + 0x234e0" identifier + number_literal) ))))) ;) (expression_statement "MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);" (assignment_expression "MStack_1d4.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4)" (field_expression "MStack_1d4.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_1d4.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;" (assignment_expression "MStack_1d4.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc" (field_expression "MStack_1d4.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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();\n    } while (*piVar9 == 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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\n      }\n      piVar9 = (int *)(**(code **)(pcVar36 + 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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\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            (daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar25 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar25);\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            (daemon = 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            (daemon = 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            (daemon = 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            (daemon = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)))" ( (parenthesized_expression "(unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (daemon = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))" ( (binary_expression "unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (daemon = 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 "(daemon = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)" ( (comma_expression "daemon = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0" (assignment_expression "daemon = 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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar21 = (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          pMVar21 = (MHD_Daemon *)0xffffffff;\n        }" { (expression_statement "pMVar21 = (MHD_Daemon *)0xffffffff;" (assignment_expression "pMVar21 = (MHD_Daemon *)0xffffffff" identifier = (cast_expression "(MHD_Daemon *)0xffffffff" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }" else (compound_statement "{\n          pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }" { (expression_statement "pMVar21 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);" (assignment_expression "pMVar21 = (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 **)(pcVar36 + 0x236e0))(p,2);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x236e0))(p,2)" identifier = (call_expression "(**(code **)(pcVar36 + 0x236e0))(p,2)" (parenthesized_expression "(**(code **)(pcVar36 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236e0)" * (pointer_expression "*(code **)(pcVar36 + 0x236e0)" * (cast_expression "(code **)(pcVar36 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236e0)" ( (binary_expression "pcVar36 + 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 "pMVar25 = unaff_s6;" (assignment_expression "pMVar25 = 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 *)pMVar25);" (call_expression "process_urh((MHD_UpgradeResponseHandle *)pMVar25)" identifier (argument_list "((MHD_UpgradeResponseHandle *)pMVar25)" ( (cast_expression "(MHD_UpgradeResponseHandle *)pMVar25" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))();" (assignment_expression "piVar9 = (int *)(**(code **)(pcVar36 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar36 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x23660))" ( (pointer_expression "**(code **)(pcVar36 + 0x23660)" * (pointer_expression "*(code **)(pcVar36 + 0x23660)" * (cast_expression "(code **)(pcVar36 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23660)" ( (binary_expression "pcVar36 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar9 == 4)" ( (binary_expression "*piVar9 == 4" (pointer_expression "*piVar9" * 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 "pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))();" (assignment_expression "pMVar21 = (MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))()" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar36 + 0x236b0))()" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x236b0))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar36 + 0x236b0)" * (pointer_expression "*(code **)(pcVar36 + 0x236b0)" * (cast_expression "(code **)(pcVar36 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x236b0)" ( (binary_expression "pcVar36 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x234b8) + -0x3450)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x234b8) + -0x3450)" ( (binary_expression "*(int *)(pcVar36 + 0x234b8) + -0x3450" (pointer_expression "*(int *)(pcVar36 + 0x234b8)" * (cast_expression "(int *)(pcVar36 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x234b8)" ( (binary_expression "pcVar36 + 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) ))) ;) })))) (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 "pcVar37 = *(code **)(pcVar36 + 0x23698);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x23698)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x23698)" * (cast_expression "(code **)(pcVar36 + 0x23698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23698)" ( (binary_expression "pcVar36 + 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 "(*pcVar37)(connection_00);" (call_expression "(*pcVar37)(connection_00)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(connection_00)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (pMStack_54 == (MHD_Daemon *)*piVar4) {\n    return;\n  }" statement_identifier : (if_statement "if (pMStack_54 == (MHD_Daemon *)*piVar4) {\n    return;\n  }" if (parenthesized_expression "(pMStack_54 == (MHD_Daemon *)*piVar4)" ( (binary_expression "pMStack_54 == (MHD_Daemon *)*piVar4" identifier == (cast_expression "(MHD_Daemon *)*piVar4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x23714);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x23714)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x23714)" * (cast_expression "(code **)(pcVar36 + 0x23714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x23714)" ( (binary_expression "pcVar36 + 0x23714" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = internal_run_from_select;" (assignment_expression "pcVar37 = internal_run_from_select" identifier = identifier) ;) (expression_statement "pMVar25 = pMStack_54;" (assignment_expression "pMVar25 = pMStack_54" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = *(int **)(pcVar36 + 0x22c64);" (assignment_expression "piVar4 = *(int **)(pcVar36 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x22c64)" * (cast_expression "(int **)(pcVar36 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c64)" ( (binary_expression "pcVar36 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (pMVar25->itc).fd;" (assignment_expression "iVar3 = (pMVar25->itc).fd" identifier = (field_expression "(pMVar25->itc).fd" (parenthesized_expression "(pMVar25->itc)" ( (field_expression "pMVar25->itc" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pMStackY_3d4 = (MHD_Daemon *)*piVar4;" (assignment_expression "pMStackY_3d4 = (MHD_Daemon *)*piVar4" identifier = (cast_expression "(MHD_Daemon *)*piVar4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "pMVar25->data_already_pending = false;" (assignment_expression "pMVar25->data_already_pending = false" (field_expression "pMVar25->data_already_pending" identifier -> field_identifier) = false) ;) (expression_statement "pMStackY_3d0 = daemon;" (assignment_expression "pMStackY_3d0 = daemon" identifier = identifier) ;) (expression_statement "pMStackY_3cc = daemon_00;" (assignment_expression "pMStackY_3cc = daemon_00" identifier = identifier) ;) (expression_statement "pMStackY_3c8 = pMVar29;" (assignment_expression "pMStackY_3c8 = pMVar29" identifier = identifier) ;) (expression_statement "uStackY_3c4 = uVar30;" (assignment_expression "uStackY_3c4 = uVar30" identifier = identifier) ;) (expression_statement "psStackY_3c0 = (size_t *)ws;" (assignment_expression "psStackY_3c0 = (size_t *)ws" identifier = (cast_expression "(size_t *)ws" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStackY_3bc = puVar33;" (assignment_expression "puStackY_3bc = puVar33" identifier = identifier) ;) (expression_statement "pMStackY_3b8 = unaff_s6;" (assignment_expression "pMStackY_3b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pMStackY_3b4 = unaff_s7;" (assignment_expression "pMStackY_3b4 = unaff_s7" identifier = identifier) ;) (expression_statement "pMStackY_3b0 = connection_00;" (assignment_expression "pMStackY_3b0 = connection_00" identifier = identifier) ;) (expression_statement "pcStackY_3ac = pcVar37;" (assignment_expression "pcStackY_3ac = pcVar37" identifier = identifier) ;) (if_statement "if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))();\n    uVar18 = (pMVar25->itc).fd;\n    if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))();\n    uVar18 = (pMVar25->itc).fd;\n    if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x22c24))();" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x22c24)" * (pointer_expression "*(code **)(pcVar36 + 0x22c24)" * (cast_expression "(code **)(pcVar36 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c24)" ( (binary_expression "pcVar36 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar18 = (pMVar25->itc).fd;" (assignment_expression "uVar18 = (pMVar25->itc).fd" identifier = (field_expression "(pMVar25->itc).fd" (parenthesized_expression "(pMVar25->itc)" ( (field_expression "pMVar25->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }\n    else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }" { (expression_statement "uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar18 & 0x1f)" number_literal << (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 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 "pcVar37 = *(code **)(pcVar36 + 0x22c90);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22c90)" * (cast_expression "(code **)(pcVar36 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c90)" ( (binary_expression "pcVar36 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }" else (compound_statement "{\n      uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar37 = *(code **)(pcVar36 + 0x22c90);\n    }" { (expression_statement "uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar17 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar18 & 0x1f)" number_literal << (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 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 "pcVar37 = *(code **)(pcVar36 + 0x22c90);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22c90)" * (cast_expression "(code **)(pcVar36 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c90)" ( (binary_expression "pcVar36 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar17 != 0) {\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar37)(uVar18,auStackY_3e0,8);\n    }" { (expression_statement "(*pcVar37)(uVar18,auStackY_3e0,8);" (call_expression "(*pcVar37)(uVar18,auStackY_3e0,8)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(uVar18,auStackY_3e0,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "uVar18 = pMVar25->listen_fd;" (assignment_expression "uVar18 = pMVar25->listen_fd" identifier = (field_expression "pMVar25->listen_fd" identifier -> field_identifier)) ;) (if_statement "if ((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n    if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }\n  }" if (parenthesized_expression "((uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false))" ( (binary_expression "(uVar18 != 0xffffffff) && (pMVar25->was_quiesced == false)" (parenthesized_expression "(uVar18 != 0xffffffff)" ( (binary_expression "uVar18 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(pMVar25->was_quiesced == false)" ( (binary_expression "pMVar25->was_quiesced == false" (field_expression "pMVar25->was_quiesced" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n    if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x22c24))(uVar18)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22c24))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x22c24)" * (pointer_expression "*(code **)(pcVar36 + 0x22c24)" * (cast_expression "(code **)(pcVar36 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c24)" ( (binary_expression "pcVar36 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (if_statement "if ((int)uVar18 < 0) {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" { (expression_statement "uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar18 & 0x1f)" number_literal << (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 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      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" else (compound_statement "{\n      uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" { (expression_statement "uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar18 = 1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar18 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar18 & 0x1f)" number_literal << (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 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 (uVar18 != 0) {\n      MHD_accept_connection(pMVar25);\n    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      MHD_accept_connection(pMVar25);\n    }" { (expression_statement "MHD_accept_connection(pMVar25);" (call_expression "MHD_accept_connection(pMVar25)" identifier (argument_list "(pMVar25)" ( identifier ))) ;) })) })) (if_statement "if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar36 + 0x229fc);\n    pMVar28 = pMVar25->connections_tail;\n    do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);\n  }" if (parenthesized_expression "(((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0))" ( (binary_expression "((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar25->connections_tail != (MHD_Connection *)0x0)" (parenthesized_expression "((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(pMVar25->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar25->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar25->options" identifier -> field_identifier) & identifier) )) == identifier) )) && (parenthesized_expression "(pMVar25->connections_tail != (MHD_Connection *)0x0)" ( (binary_expression "pMVar25->connections_tail != (MHD_Connection *)0x0" (field_expression "pMVar25->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 *)(pcVar36 + 0x229fc);\n    pMVar28 = pMVar25->connections_tail;\n    do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);\n  }" { (expression_statement "iVar3 = *(int *)(pcVar36 + 0x229fc);" (assignment_expression "iVar3 = *(int *)(pcVar36 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x229fc)" * (cast_expression "(int *)(pcVar36 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x229fc)" ( (binary_expression "pcVar36 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pMVar28 = pMVar25->connections_tail;" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    } while (pMVar26 != (MHD_Connection *)0x0);" do (compound_statement "{\n      uVar18 = pMVar28->socket_fd;\n      pMVar26 = pMVar28->prev;\n      if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }\n      pMVar28 = pMVar26;\n    }" { (expression_statement "uVar18 = pMVar28->socket_fd;" (assignment_expression "uVar18 = pMVar28->socket_fd" identifier = (field_expression "pMVar28->socket_fd" identifier -> field_identifier)) ;) (expression_statement "pMVar26 = pMVar28->prev;" (assignment_expression "pMVar26 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) (if_statement "if (uVar18 != 0xffffffff) {\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }" if (parenthesized_expression "(uVar18 != 0xffffffff)" ( (binary_expression "uVar18 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));\n        p_Var19 = (&p->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        p_Var22 = (&pMVar21->default_handler)[iVar13];\n        iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);\n      }" { (expression_statement "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);" (assignment_expression "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22c24))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x22c24)" * (pointer_expression "*(code **)(pcVar36 + 0x22c24)" * (cast_expression "(code **)(pcVar36 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c24)" ( (binary_expression "pcVar36 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f));" (assignment_expression "unaff_s7 = (MHD_Daemon *)(1 << (uVar18 & 0x1f))" identifier = (cast_expression "(MHD_Daemon *)(1 << (uVar18 & 0x1f))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1 << (uVar18 & 0x1f))" ( (binary_expression "1 << (uVar18 & 0x1f)" number_literal << (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 0x1f" identifier & number_literal) ))) )))) ;) (expression_statement "p_Var19 = (&p->default_handler)[iVar13];" (assignment_expression "p_Var19 = (&p->default_handler)[iVar13]" identifier = (subscript_expression "(&p->default_handler)[iVar13]" (parenthesized_expression "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) )) [ identifier ])) ;) (expression_statement "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);" (assignment_expression "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22c24))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x22c24)" * (pointer_expression "*(code **)(pcVar36 + 0x22c24)" * (cast_expression "(code **)(pcVar36 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c24)" ( (binary_expression "pcVar36 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "p_Var22 = (&pMVar21->default_handler)[iVar13];" (assignment_expression "p_Var22 = (&pMVar21->default_handler)[iVar13]" identifier = (subscript_expression "(&pMVar21->default_handler)[iVar13]" (parenthesized_expression "(&pMVar21->default_handler)" ( (pointer_expression "&pMVar21->default_handler" & (field_expression "pMVar21->default_handler" identifier -> field_identifier)) )) [ identifier ])) ;) (expression_statement "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18);" (assignment_expression "iVar13 = (**(code **)(pcVar36 + 0x22c24))(uVar18)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22c24))(uVar18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar36 + 0x22c24)" * (pointer_expression "*(code **)(pcVar36 + 0x22c24)" * (cast_expression "(code **)(pcVar36 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c24)" ( (binary_expression "pcVar36 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar18)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0);" (call_expression "(*(code *)(iVar3 + -0x7974))\n                  (pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 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 "(pMVar28,((uint)unaff_s7 & (uint)p_Var19) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var22) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)p_Var19) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)p_Var19)" ( (binary_expression "(uint)unaff_s7 & (uint)p_Var19" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)p_Var19" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)p_Var22) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)p_Var22)" ( (binary_expression "(uint)unaff_s7 & (uint)p_Var22" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)p_Var22" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13])" ( (binary_expression "(uint)unaff_s7 & (uint)(&pMVar23->default_handler)[iVar13]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (subscript_expression "(uint)(&pMVar23->default_handler)[iVar13]" (call_expression "(uint)(&pMVar23->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&pMVar23->default_handler)" ( (pointer_expression "&pMVar23->default_handler" & (field_expression "pMVar23->default_handler" identifier -> field_identifier)) ))) [ identifier ])) )) != number_literal) ))) ;) })) (expression_statement "pMVar28 = pMVar26;" (assignment_expression "pMVar28 = pMVar26" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar26 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n  }" if (parenthesized_expression "(pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar25->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    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (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 "pMVar15 = pMVar25->urh_tail;" (assignment_expression "pMVar15 = pMVar25->urh_tail" identifier = (field_expression "pMVar25->urh_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);" do (compound_statement "{\n      pMVar27 = pMVar15->prev;\n      urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);\n      process_urh(pMVar15);\n      if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }\n      pMVar15 = pMVar27;\n    }" { (expression_statement "pMVar27 = pMVar15->prev;" (assignment_expression "pMVar27 = pMVar15->prev" identifier = (field_expression "pMVar15->prev" identifier -> field_identifier)) ;) (expression_statement "urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23);" (call_expression "urh_from_fdset(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23)" identifier (argument_list "(pMVar15,(fd_set *)p,(fd_set *)pMVar21,(fd_set *)pMVar23)" ( identifier , (cast_expression "(fd_set *)p" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar21" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar23" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "process_urh(pMVar15);" (call_expression "process_urh(pMVar15)" identifier (argument_list "(pMVar15)" ( identifier ))) ;) (if_statement "if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }" if (parenthesized_expression "((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0))" ( (binary_expression "(((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)" (parenthesized_expression "(((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0))" ( (binary_expression "((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n          (pMVar15->in_buffer_used == 0)" (parenthesized_expression "((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0))" ( (binary_expression "(pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)" (parenthesized_expression "(pMVar15->in_buffer_size == 0)" ( (binary_expression "pMVar15->in_buffer_size == 0" (field_expression "pMVar15->in_buffer_size" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pMVar15->out_buffer_size == 0)" ( (binary_expression "pMVar15->out_buffer_size == 0" (field_expression "pMVar15->out_buffer_size" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar15->in_buffer_used == 0)" ( (binary_expression "pMVar15->in_buffer_used == 0" (field_expression "pMVar15->in_buffer_used" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar15->out_buffer_used == 0)" ( (binary_expression "pMVar15->out_buffer_used == 0" (field_expression "pMVar15->out_buffer_used" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        MHD_connection_finish_forward_(pMVar15->connection);\n        pcVar37 = *(code **)(pcVar36 + 0x22bb4);\n        pMVar15->clean_ready = true;\n        (*pcVar37)(pMVar15->connection);\n      }" { (expression_statement "MHD_connection_finish_forward_(pMVar15->connection);" (call_expression "MHD_connection_finish_forward_(pMVar15->connection)" identifier (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x22bb4);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22bb4)" * (cast_expression "(code **)(pcVar36 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22bb4)" ( (binary_expression "pcVar36 + 0x22bb4" identifier + number_literal) ))))) ;) (expression_statement "pMVar15->clean_ready = true;" (assignment_expression "pMVar15->clean_ready = true" (field_expression "pMVar15->clean_ready" identifier -> field_identifier) = true) ;) (expression_statement "(*pcVar37)(pMVar15->connection);" (call_expression "(*pcVar37)(pMVar15->connection)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) })) (expression_statement "pMVar15 = pMVar27;" (assignment_expression "pMVar15 = pMVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar27 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar27 != (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(pMVar25);" (call_expression "MHD_cleanup_connections(pMVar25)" identifier (argument_list "(pMVar25)" ( identifier ))) ;) (if_statement "if (pMStackY_3d4 == (MHD_Daemon *)*piVar4) {\n    return;\n  }" if (parenthesized_expression "(pMStackY_3d4 == (MHD_Daemon *)*piVar4)" ( (binary_expression "pMStackY_3d4 == (MHD_Daemon *)*piVar4" identifier == (cast_expression "(MHD_Daemon *)*piVar4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x22c30);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22c30)" * (cast_expression "(code **)(pcVar36 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22c30)" ( (binary_expression "pcVar36 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "pMVar25 = pMStackY_3d4;" (assignment_expression "pMVar25 = pMStackY_3d4" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "MVar35 = pMVar25->options;" (assignment_expression "MVar35 = pMVar25->options" identifier = (field_expression "pMVar25->options" identifier -> field_identifier)) ;) (expression_statement "MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION;" (assignment_expression "MVar34 = MVar35 & MHD_USE_THREAD_PER_CONNECTION" identifier = (binary_expression "MVar35 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier)) ;) (expression_statement "pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE);" (assignment_expression "pMVar31 = (MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE)" identifier = (cast_expression "(MHD_mutex_ *)(MVar35 & MHD_ALLOW_UPGRADE)" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(MVar35 & MHD_ALLOW_UPGRADE)" ( (binary_expression "MVar35 & MHD_ALLOW_UPGRADE" identifier & identifier) )))) ;) (expression_statement "MVar14 = MVar35;" (assignment_expression "MVar14 = MVar35" identifier = identifier) ;) (if_statement "if (pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar14 = pMVar25->options;\n  }" if (parenthesized_expression "(pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar25->urh_tail != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar25->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    pMVar15 = pMVar25->urh_tail;\n    do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar14 = pMVar25->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 "pMVar15 = pMVar25->urh_tail;" (assignment_expression "pMVar15 = pMVar25->urh_tail" identifier = (field_expression "pMVar25->urh_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    } while (pMVar27 != (MHD_UpgradeResponseHandle *)0x0);" do (compound_statement "{\n      pMVar27 = pMVar15->prev;\n      process_urh(pMVar15);\n      MHD_connection_finish_forward_(pMVar15->connection);\n      pMVar15->clean_ready = true;\n      (**(code **)(pcVar36 + 0x22818))(pMVar15->connection);\n      pMVar15 = pMVar27;\n    }" { (expression_statement "pMVar27 = pMVar15->prev;" (assignment_expression "pMVar27 = pMVar15->prev" identifier = (field_expression "pMVar15->prev" identifier -> field_identifier)) ;) (expression_statement "process_urh(pMVar15);" (call_expression "process_urh(pMVar15)" identifier (argument_list "(pMVar15)" ( identifier ))) ;) (expression_statement "MHD_connection_finish_forward_(pMVar15->connection);" (call_expression "MHD_connection_finish_forward_(pMVar15->connection)" identifier (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) (expression_statement "pMVar15->clean_ready = true;" (assignment_expression "pMVar15->clean_ready = true" (field_expression "pMVar15->clean_ready" identifier -> field_identifier) = true) ;) (expression_statement "(**(code **)(pcVar36 + 0x22818))(pMVar15->connection);" (call_expression "(**(code **)(pcVar36 + 0x22818))(pMVar15->connection)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22818))" ( (pointer_expression "**(code **)(pcVar36 + 0x22818)" * (pointer_expression "*(code **)(pcVar36 + 0x22818)" * (cast_expression "(code **)(pcVar36 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22818)" ( (binary_expression "pcVar36 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) (expression_statement "pMVar15 = pMVar27;" (assignment_expression "pMVar15 = pMVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar27 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar27 != (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 "MVar14 = pMVar25->options;" (assignment_expression "MVar14 = pMVar25->options" identifier = (field_expression "pMVar25->options" identifier -> field_identifier)) ;) })) (if_statement "if ((MVar14 & 0x2000) != MHD_NO_FLAG) {\n    pMVar25->resuming = true;\n    resume_suspended_connections(pMVar25);\n  }" if (parenthesized_expression "((MVar14 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar14 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar14 & 0x2000)" ( (binary_expression "MVar14 & 0x2000" identifier & number_literal) )) != identifier) )) (compound_statement "{\n    pMVar25->resuming = true;\n    resume_suspended_connections(pMVar25);\n  }" { (expression_statement "pMVar25->resuming = true;" (assignment_expression "pMVar25->resuming = true" (field_expression "pMVar25->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(pMVar25);" (call_expression "resume_suspended_connections(pMVar25)" identifier (argument_list "(pMVar25)" ( identifier ))) ;) })) (expression_statement "pMVar32 = &pMVar25->cleanup_connection_mutex;" (assignment_expression "pMVar32 = &pMVar25->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar25->cleanup_connection_mutex" & (field_expression "pMVar25->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22884))(pMVar32)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22884))" ( (pointer_expression "**(code **)(pcVar36 + 0x22884)" * (pointer_expression "*(code **)(pcVar36 + 0x22884)" * (cast_expression "(code **)(pcVar36 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22884)" ( (binary_expression "pcVar36 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar32)" ( identifier )))) ;) (expression_statement "uVar30 = 0x191e;" (assignment_expression "uVar30 = 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 (pMVar31 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pMVar31 == (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar31 == (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 "pMVar28 = pMVar25->suspended_connections_tail;" (assignment_expression "pMVar28 = pMVar25->suspended_connections_tail" identifier = (field_expression "pMVar25->suspended_connections_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(pMVar28 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 == (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 "pMVar15 = pMVar28->urh;" (assignment_expression "pMVar15 = pMVar28->urh" identifier = (field_expression "pMVar28->urh" identifier -> field_identifier)) ;) (expression_statement "MVar35 = MVar35 & MHD_USE_SSL;" (assignment_expression "MVar35 = MVar35 & MHD_USE_SSL" identifier = (binary_expression "MVar35 & MHD_USE_SSL" identifier & identifier)) ;) (if_statement "if (pMVar15 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;" if (parenthesized_expression "(pMVar15 == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar15 == (MHD_UpgradeResponseHandle *)0x0" identifier == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (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 *)(pcVar36 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar36 + 0x22638) + -0x4014)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (MVar35 == MHD_NO_FLAG) goto LAB_0001cd7c;" if (parenthesized_expression "(MVar35 == MHD_NO_FLAG)" ( (binary_expression "MVar35 == MHD_NO_FLAG" identifier == identifier) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (MVar34 == MHD_NO_FLAG) {\n    if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n    pMVar28->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(MVar34 == MHD_NO_FLAG)" ( (binary_expression "MVar34 == MHD_NO_FLAG" identifier == identifier) )) (compound_statement "{\n    if (pMVar15->was_closed == false) goto LAB_0001cdb0;\n    pMVar28->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }" { (if_statement "if (pMVar15->was_closed == false) goto LAB_0001cdb0;" if (parenthesized_expression "(pMVar15->was_closed == false)" ( (binary_expression "pMVar15->was_closed == false" (field_expression "pMVar15->was_closed" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "pMVar28->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar28->urh->was_closed = SUB41(p,0)" (field_expression "pMVar28->urh->was_closed" (field_expression "pMVar28->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 (pMVar15->clean_ready == false) {\n    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);\n    goto LAB_0001cb54;\n  }" if (parenthesized_expression "(pMVar15->clean_ready == false)" ( (binary_expression "pMVar15->clean_ready == false" (field_expression "pMVar15->clean_ready" identifier -> field_identifier) == false) )) (compound_statement "{\n    (**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2);" (call_expression "(**(code **)(pcVar36 + 0x22744))((pMVar15->app).socket,2)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22744))" ( (pointer_expression "**(code **)(pcVar36 + 0x22744)" * (pointer_expression "*(code **)(pcVar36 + 0x22744)" * (cast_expression "(code **)(pcVar36 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22744)" ( (binary_expression "pcVar36 + 0x22744" identifier + number_literal) ))))) )) (argument_list "((pMVar15->app).socket,2)" ( (field_expression "(pMVar15->app).socket" (parenthesized_expression "(pMVar15->app)" ( (field_expression "pMVar15->app" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (goto_statement "goto LAB_0001cb54;" goto statement_identifier ;) })) (if_statement "if (pMVar15->was_closed == false) goto LAB_0001cdb0;" if (parenthesized_expression "(pMVar15->was_closed == false)" ( (binary_expression "pMVar15->was_closed == false" (field_expression "pMVar15->was_closed" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "pMVar28->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar28->urh->was_closed = SUB41(p,0)" (field_expression "pMVar28->urh->was_closed" (field_expression "pMVar28->urh" identifier -> field_identifier) -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (labeled_statement "LAB_0001cb4c:\n  pMVar28->resuming = SUB41(p,0);" statement_identifier : (expression_statement "pMVar28->resuming = SUB41(p,0);" (assignment_expression "pMVar28->resuming = SUB41(p,0)" (field_expression "pMVar28->resuming" identifier -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;)) (expression_statement "pMVar25->resuming = SUB41(p,0);" (assignment_expression "pMVar25->resuming = SUB41(p,0)" (field_expression "pMVar25->resuming" identifier -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (labeled_statement "LAB_0001cb54:\n  pMVar28 = pMVar28->prev;" statement_identifier : (expression_statement "pMVar28 = pMVar28->prev;" (assignment_expression "pMVar28 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;)) (if_statement "if (pMVar28 != (MHD_Connection *)0x0) {\n    pMVar15 = pMVar28->urh;\n    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar30 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);\n  }" if (parenthesized_expression "(pMVar28 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar15 = pMVar28->urh;\n    if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar30 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);\n  }" { (expression_statement "pMVar15 = pMVar28->urh;" (assignment_expression "pMVar15 = pMVar28->urh" identifier = (field_expression "pMVar28->urh" identifier -> field_identifier)) ;) (if_statement "if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;" if (parenthesized_expression "(pMVar15 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar15 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cb18;" goto statement_identifier ;)) (labeled_statement "LAB_0001cb6c:\n    uVar30 = 0x1929;" statement_identifier : (expression_statement "uVar30 = 0x1929;" (assignment_expression "uVar30 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    } while (pMVar25->suspended_connections_head != (MHD_Connection *)0x0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar30 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar36 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2264c)" ( (binary_expression "pcVar36 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,uVar30,\n                 *(int *)(pcVar36 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar36 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar36 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22644)" ( (binary_expression "pcVar36 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar30 = 0x1948;" statement_identifier : (expression_statement "uVar30 = 0x1948;" (assignment_expression "uVar30 = 0x1948" identifier = number_literal) ;)) }) while (parenthesized_expression "(pMVar25->suspended_connections_head != (MHD_Connection *)0x0)" ( (binary_expression "pMVar25->suspended_connections_head != (MHD_Connection *)0x0" (field_expression "pMVar25->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  pMVar28 = pMVar25->connections_tail;" statement_identifier : (expression_statement "pMVar28 = pMVar25->connections_tail;" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) ;)) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x22918);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22918)" * (cast_expression "(code **)(pcVar36 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22918)" ( (binary_expression "pcVar36 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (pMVar28 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);\n    pcVar37 = *(code **)(pcVar36 + 0x22918);\n    pMVar28 = (MHD_Connection *)0x0;\n    if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }\n  }" if (parenthesized_expression "(pMVar28 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 != (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 **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);\n    pcVar37 = *(code **)(pcVar36 + 0x22918);\n    pMVar28 = (MHD_Connection *)0x0;\n    if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    } while (pMVar28 != (MHD_Connection *)0x0);" do (compound_statement "{\n      (**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);\n      pMVar28 = pMVar28->prev;\n    }" { (expression_statement "(**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2);" (call_expression "(**(code **)(pcVar36 + 0x22744))(pMVar28->socket_fd,2)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22744))" ( (pointer_expression "**(code **)(pcVar36 + 0x22744)" * (pointer_expression "*(code **)(pcVar36 + 0x22744)" * (cast_expression "(code **)(pcVar36 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22744)" ( (binary_expression "pcVar36 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(pMVar28->socket_fd,2)" ( (field_expression "pMVar28->socket_fd" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "pMVar28 = pMVar28->prev;" (assignment_expression "pMVar28 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar28 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x22918);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22918)" * (cast_expression "(code **)(pcVar36 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22918)" ( (binary_expression "pcVar36 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pMVar28 = (MHD_Connection *)0x0;" (assignment_expression "pMVar28 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);\n    }" if (parenthesized_expression "((MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0))" ( (binary_expression "(MVar34 != MHD_NO_FLAG) &&\n       (pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)" (parenthesized_expression "(MVar34 != MHD_NO_FLAG)" ( (binary_expression "MVar34 != MHD_NO_FLAG" identifier != identifier) )) && (parenthesized_expression "(pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0)" ( (comma_expression "pMVar28 = pMVar25->connections_tail, pMVar28 != (MHD_Connection *)0x0" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) , (binary_expression "pMVar28 != (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 (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (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 (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      } while (pMVar28 != (MHD_Connection *)0x0);" do (compound_statement "{\n        while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        iVar3 = (*pcVar37)(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);\n        if (iVar3 != 0) goto LAB_0001cf30;\n        iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32);\n        if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        pMVar28->thread_joined = true;\n        pMVar28 = pMVar25->connections_tail;\n        pcVar37 = *(code **)(pcVar36 + 0x22918);\n      }" { (while_statement "while (pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false) {\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false)" ( (comma_expression "pcVar37 = *(code **)(pcVar36 + 0x22918), pMVar28->thread_joined != false" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22918)" * (cast_expression "(code **)(pcVar36 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22918)" ( (binary_expression "pcVar36 + 0x22918" identifier + number_literal) ))))) , (binary_expression "pMVar28->thread_joined != false" (field_expression "pMVar28->thread_joined" identifier -> field_identifier) != false)) )) (compound_statement "{\n          pMVar28 = pMVar28->prev;\n          if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "pMVar28 = pMVar28->prev;" (assignment_expression "pMVar28 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar28 == (MHD_Connection *)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(pMVar28 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 == (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 "iVar3 = (*pcVar37)(pMVar32);" (assignment_expression "iVar3 = (*pcVar37)(pMVar32)" identifier = (call_expression "(*pcVar37)(pMVar32)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pMVar32)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar30 = 0x195e;\n          goto LAB_0001cd58;\n        }" { (expression_statement "uVar30 = 0x195e;" (assignment_expression "uVar30 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0)" identifier = (call_expression "(**(code **)(pcVar36 + 0x2277c))((pMVar28->pid).handle,0)" (parenthesized_expression "(**(code **)(pcVar36 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar36 + 0x2277c)" * (pointer_expression "*(code **)(pcVar36 + 0x2277c)" * (cast_expression "(code **)(pcVar36 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2277c)" ( (binary_expression "pcVar36 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "((pMVar28->pid).handle,0)" ( (field_expression "(pMVar28->pid).handle" (parenthesized_expression "(pMVar28->pid)" ( (field_expression "pMVar28->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 **)(pcVar36 + 0x22884))(pMVar32);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar32)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22884))(pMVar32)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22884))" ( (pointer_expression "**(code **)(pcVar36 + 0x22884)" * (pointer_expression "*(code **)(pcVar36 + 0x22884)" * (cast_expression "(code **)(pcVar36 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22884)" ( (binary_expression "pcVar36 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar32)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar30 = 0x1961;\n          goto LAB_0001cf0c;\n        }" { (expression_statement "uVar30 = 0x1961;" (assignment_expression "uVar30 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "pMVar28->thread_joined = true;" (assignment_expression "pMVar28->thread_joined = true" (field_expression "pMVar28->thread_joined" identifier -> field_identifier) = true) ;) (expression_statement "pMVar28 = pMVar25->connections_tail;" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x22918);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22918)" * (cast_expression "(code **)(pcVar36 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22918)" ( (binary_expression "pcVar36 + 0x22918" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(pMVar28 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 != (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 = (*pcVar37)(pMVar32);" statement_identifier : (expression_statement "iVar3 = (*pcVar37)(pMVar32);" (assignment_expression "iVar3 = (*pcVar37)(pMVar32)" identifier = (call_expression "(*pcVar37)(pMVar32)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pMVar32)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) {\n    if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }\n    do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);\n    uVar30 = 0x11dd;\n  }\n  else {\n    uVar30 = 0x196b;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }\n    do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);\n    uVar30 = 0x11dd;\n  }" { (if_statement "if (pMVar31 != (MHD_mutex_ *)0x0) {\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }" if (parenthesized_expression "(pMVar31 != (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar31 != (MHD_mutex_ *)0x0" identifier != (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar25->resuming = true;\n      resume_suspended_connections(pMVar25);\n    }" { (expression_statement "pMVar25->resuming = true;" (assignment_expression "pMVar25->resuming = true" (field_expression "pMVar25->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(pMVar25);" (call_expression "resume_suspended_connections(pMVar25)" identifier (argument_list "(pMVar25)" ( identifier ))) ;) })) (do_statement "do {\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    } while (iVar3 == 0);" do (compound_statement "{\n      pMVar28 = pMVar25->connections_tail;\n      while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }\n      pMVar31 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);\n      if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar26 = pMVar28->prevX;\n      pMVar20 = pMVar28->nextX;\n      if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }\n      pcVar37 = *(code **)(pcVar36 + 0x22918);\n      p->cleanup_head = pMVar28;\n      iVar3 = (*pcVar37)(pMVar31);\n    }" { (expression_statement "pMVar28 = pMVar25->connections_tail;" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }\n        if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar28->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar28);\n        pMVar28 = pMVar25->connections_tail;\n      }" { (if_statement "if (pMVar28 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar25);\n          return;\n        }" if (parenthesized_expression "(pMVar28 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar28 == (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(pMVar25);\n          return;\n        }" { (expression_statement "MHD_cleanup_connections(pMVar25);" (call_expression "MHD_cleanup_connections(pMVar25)" identifier (argument_list "(pMVar25)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)) goto LAB_0001cf30;" if (parenthesized_expression "(((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false))" ( (binary_expression "((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar28->thread_joined == false)" (parenthesized_expression "((pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(pMVar25->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(pMVar25->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar25->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar25->options" identifier -> field_identifier) & identifier) )) != identifier) )) && (parenthesized_expression "(pMVar28->thread_joined == false)" ( (binary_expression "pMVar28->thread_joined == false" (field_expression "pMVar28->thread_joined" identifier -> field_identifier) == false) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "p = pMVar28->daemon;" (assignment_expression "p = pMVar28->daemon" identifier = (field_expression "pMVar28->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_(pMVar28);" (call_expression "MHD_connection_mark_closed_(pMVar28)" identifier (argument_list "(pMVar28)" ( identifier ))) ;) (expression_statement "pMVar28 = pMVar25->connections_tail;" (assignment_expression "pMVar28 = pMVar25->connections_tail" identifier = (field_expression "pMVar25->connections_tail" identifier -> field_identifier)) ;) })) (expression_statement "pMVar31 = &p->cleanup_connection_mutex;" (assignment_expression "pMVar31 = &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_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);" (call_expression "MHD_connection_close_(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" identifier (argument_list "(pMVar28,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31);" (assignment_expression "iVar3 = (**(code **)(pcVar36 + 0x22884))(pMVar31)" identifier = (call_expression "(**(code **)(pcVar36 + 0x22884))(pMVar31)" (parenthesized_expression "(**(code **)(pcVar36 + 0x22884))" ( (pointer_expression "**(code **)(pcVar36 + 0x22884)" * (pointer_expression "*(code **)(pcVar36 + 0x22884)" * (cast_expression "(code **)(pcVar36 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22884)" ( (binary_expression "pcVar36 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar31)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar30 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar30 = 0x11ca;" (assignment_expression "uVar30 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar36 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2264c)" ( (binary_expression "pcVar36 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                     uVar30,*(int *)(pcVar36 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar36 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar36 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22644)" ( (binary_expression "pcVar36 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                    (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar36 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2264c)" ( (binary_expression "pcVar36 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar36 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar36 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22644)" ( (binary_expression "pcVar36 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pMVar26 = pMVar28->prevX;" (assignment_expression "pMVar26 = pMVar28->prevX" identifier = (field_expression "pMVar28->prevX" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->nextX;" (assignment_expression "pMVar20 = pMVar28->nextX" identifier = (field_expression "pMVar28->nextX" identifier -> field_identifier)) ;) (if_statement "if (pMVar28->connection_timeout == p->connection_timeout) {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }\n      else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }" if (parenthesized_expression "(pMVar28->connection_timeout == p->connection_timeout)" ( (binary_expression "pMVar28->connection_timeout == p->connection_timeout" (field_expression "pMVar28->connection_timeout" identifier -> field_identifier) == (field_expression "p->connection_timeout" identifier -> field_identifier)) )) (compound_statement "{\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar20;\nLAB_0001ccf4:\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar28;\n      }" { (if_statement "if (pMVar26 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }" if (parenthesized_expression "(pMVar26 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 == (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 = pMVar20;\n        }" { (expression_statement "p->normal_timeout_head = pMVar20;" (assignment_expression "p->normal_timeout_head = pMVar20" (field_expression "p->normal_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar26->nextX = pMVar20;\n        }" else (compound_statement "{\n          pMVar26->nextX = pMVar20;\n        }" { (expression_statement "pMVar26->nextX = pMVar20;" (assignment_expression "pMVar26->nextX = pMVar20" (field_expression "pMVar26->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar26 = pMVar28->nextX;" (assignment_expression "pMVar26 = pMVar28->nextX" identifier = (field_expression "pMVar28->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->prevX;" (assignment_expression "pMVar20 = pMVar28->prevX" identifier = (field_expression "pMVar28->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001ccf0;" if (parenthesized_expression "(pMVar26 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 != (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 = pMVar20;" (assignment_expression "p->normal_timeout_tail = pMVar20" (field_expression "p->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pMVar26 = pMVar28->prev;" statement_identifier : (expression_statement "pMVar26 = pMVar28->prev;" (assignment_expression "pMVar26 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;)) (expression_statement "pMVar20 = pMVar28->next;" (assignment_expression "pMVar20 = pMVar28->next" identifier = (field_expression "pMVar28->next" identifier -> field_identifier)) ;) (expression_statement "pMVar28->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->nextX = (MHD_Connection *)0x0" (field_expression "pMVar28->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar28->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->prevX = (MHD_Connection *)0x0" (field_expression "pMVar28->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd08;" if (parenthesized_expression "(pMVar26 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 != (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 = pMVar20;" statement_identifier : (expression_statement "p->connections_head = pMVar20;" (assignment_expression "p->connections_head = pMVar20" (field_expression "p->connections_head" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar26 = pMVar28->next;" (assignment_expression "pMVar26 = pMVar28->next" identifier = (field_expression "pMVar28->next" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->prev;" (assignment_expression "pMVar20 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar26 != (MHD_Connection *)0x0) goto LAB_0001cd18;" if (parenthesized_expression "(pMVar26 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 != (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 = pMVar20;" statement_identifier : (expression_statement "p->connections_tail = pMVar20;" (assignment_expression "p->connections_tail = pMVar20" (field_expression "p->connections_tail" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar28->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->next = (MHD_Connection *)0x0" (field_expression "pMVar28->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar28->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->prev = (MHD_Connection *)0x0" (field_expression "pMVar28->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar26 = p->cleanup_head;" (assignment_expression "pMVar26 = p->cleanup_head" identifier = (field_expression "p->cleanup_head" identifier -> field_identifier)) ;) (expression_statement "pMVar28->next = pMVar26;" (assignment_expression "pMVar28->next = pMVar26" (field_expression "pMVar28->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 = pMVar28;" statement_identifier : (expression_statement "p->cleanup_tail = pMVar28;" (assignment_expression "p->cleanup_tail = pMVar28" (field_expression "p->cleanup_tail" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }" else (compound_statement "{\n        if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }\n        pMVar26 = pMVar28->nextX;\n        pMVar20 = pMVar28->prevX;\n        if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar20;\n        pMVar28->nextX = (MHD_Connection *)0x0;\n        pMVar28->prevX = (MHD_Connection *)0x0;\n        pMVar26 = pMVar28->prev;\n        pMVar20 = pMVar28->next;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar26->next = pMVar20;\n        pMVar26 = pMVar28->next;\n        pMVar20 = pMVar28->prev;\n        if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar26->prev = pMVar20;\n        pMVar28->next = (MHD_Connection *)0x0;\n        pMVar28->prev = (MHD_Connection *)0x0;\n        pMVar26 = p->cleanup_head;\n        pMVar28->next = pMVar26;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar26->prev = pMVar28;\n      }" { (if_statement "if (pMVar26 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar20;\n        }\n        else {\n          pMVar26->nextX = pMVar20;\n        }" if (parenthesized_expression "(pMVar26 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 == (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 = pMVar20;\n        }" { (expression_statement "p->manual_timeout_head = pMVar20;" (assignment_expression "p->manual_timeout_head = pMVar20" (field_expression "p->manual_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar26->nextX = pMVar20;\n        }" else (compound_statement "{\n          pMVar26->nextX = pMVar20;\n        }" { (expression_statement "pMVar26->nextX = pMVar20;" (assignment_expression "pMVar26->nextX = pMVar20" (field_expression "pMVar26->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar26 = pMVar28->nextX;" (assignment_expression "pMVar26 = pMVar28->nextX" identifier = (field_expression "pMVar28->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->prevX;" (assignment_expression "pMVar20 = pMVar28->prevX" identifier = (field_expression "pMVar28->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar26 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }" if (parenthesized_expression "(pMVar26 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 != (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          pMVar26->prevX = pMVar20;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pMVar26->prevX = pMVar20;" statement_identifier : (expression_statement "pMVar26->prevX = pMVar20;" (assignment_expression "pMVar26->prevX = pMVar20" (field_expression "pMVar26->prevX" identifier -> field_identifier) = identifier) ;)) (goto_statement "goto LAB_0001ccf4;" goto statement_identifier ;) })) (expression_statement "p->manual_timeout_tail = pMVar20;" (assignment_expression "p->manual_timeout_tail = pMVar20" (field_expression "p->manual_timeout_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar28->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->nextX = (MHD_Connection *)0x0" (field_expression "pMVar28->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar28->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->prevX = (MHD_Connection *)0x0" (field_expression "pMVar28->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar26 = pMVar28->prev;" (assignment_expression "pMVar26 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->next;" (assignment_expression "pMVar20 = pMVar28->next" identifier = (field_expression "pMVar28->next" identifier -> field_identifier)) ;) (if_statement "if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001cdfc;" if (parenthesized_expression "(pMVar26 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 == (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        pMVar26->next = pMVar20;" statement_identifier : (expression_statement "pMVar26->next = pMVar20;" (assignment_expression "pMVar26->next = pMVar20" (field_expression "pMVar26->next" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar26 = pMVar28->next;" (assignment_expression "pMVar26 = pMVar28->next" identifier = (field_expression "pMVar28->next" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar28->prev;" (assignment_expression "pMVar20 = pMVar28->prev" identifier = (field_expression "pMVar28->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar26 == (MHD_Connection *)0x0) goto LAB_0001ce0c;" if (parenthesized_expression "(pMVar26 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar26 == (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        pMVar26->prev = pMVar20;" statement_identifier : (expression_statement "pMVar26->prev = pMVar20;" (assignment_expression "pMVar26->prev = pMVar20" (field_expression "pMVar26->prev" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar28->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->next = (MHD_Connection *)0x0" (field_expression "pMVar28->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar28->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar28->prev = (MHD_Connection *)0x0" (field_expression "pMVar28->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar26 = p->cleanup_head;" (assignment_expression "pMVar26 = p->cleanup_head" identifier = (field_expression "p->cleanup_head" identifier -> field_identifier)) ;) (expression_statement "pMVar28->next = pMVar26;" (assignment_expression "pMVar28->next = pMVar26" (field_expression "pMVar28->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        pMVar26->prev = pMVar28;" statement_identifier : (expression_statement "pMVar26->prev = pMVar28;" (assignment_expression "pMVar26->prev = pMVar28" (field_expression "pMVar26->prev" identifier -> field_identifier) = identifier) ;)) }))) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x22918);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x22918)" * (cast_expression "(code **)(pcVar36 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22918)" ( (binary_expression "pcVar36 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "p->cleanup_head = pMVar28;" (assignment_expression "p->cleanup_head = pMVar28" (field_expression "p->cleanup_head" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar37)(pMVar31);" (assignment_expression "iVar3 = (*pcVar37)(pMVar31)" identifier = (call_expression "(*pcVar37)(pMVar31)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pMVar31)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (expression_statement "uVar30 = 0x11dd;" (assignment_expression "uVar30 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar30 = 0x196b;\n  }" else (compound_statement "{\n    uVar30 = 0x196b;\n  }" { (expression_statement "uVar30 = 0x196b;" (assignment_expression "uVar30 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8);" (assignment_expression "pMVar15 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8)" identifier = (cast_expression "(MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8)" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))\n                      (**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar36 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar36 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar36 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x2264c)" ( (binary_expression "pcVar36 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar36 + 0x22644),*(int *)(pcVar36 + 0x22638) + -0x40a0,\n                       uVar30,*(int *)(pcVar36 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar36 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar36 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar36 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x22644)" ( (binary_expression "pcVar36 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar36 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar36 + 0x22638)" * (cast_expression "(int *)(pcVar36 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x22638)" ( (binary_expression "pcVar36 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (pMVar15->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }" statement_identifier : (if_statement "if (pMVar15->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }" if (parenthesized_expression "(pMVar15->was_closed == false)" ( (binary_expression "pMVar15->was_closed == false" (field_expression "pMVar15->was_closed" identifier -> field_identifier) == false) )) (compound_statement "{\nLAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    MHD_DLOG(pMVar25,(char *)unaff_s7);" statement_identifier : (expression_statement "MHD_DLOG(pMVar25,(char *)unaff_s7);" (call_expression "MHD_DLOG(pMVar25,(char *)unaff_s7)" identifier (argument_list "(pMVar25,(char *)unaff_s7)" ( identifier , (cast_expression "(char *)unaff_s7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }))) (expression_statement "pMVar28->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar28->urh->was_closed = SUB41(p,0)" (field_expression "pMVar28->urh->was_closed" (field_expression "pMVar28->urh" identifier -> field_identifier) -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (if_statement "if (MVar34 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);\n  }" if (parenthesized_expression "(MVar34 == MHD_NO_FLAG)" ( (binary_expression "MVar34 == MHD_NO_FLAG" identifier == identifier) )) (compound_statement "{\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);\n  }" { (labeled_statement "LAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar28);" statement_identifier : (expression_statement "MHD_connection_finish_forward_(pMVar28);" (call_expression "MHD_connection_finish_forward_(pMVar28)" identifier (argument_list "(pMVar28)" ( identifier ))) ;)) })) (goto_statement "goto LAB_0001cb4c;" goto statement_identifier ;) })))
(translation_unit "int MHD_resume_connection(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}\n\n" (function_definition "int MHD_resume_connection(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "MHD_resume_connection(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int ******ppppppiVar4;" primitive_type (pointer_declarator "******ppppppiVar4" * (pointer_declarator "*****ppppppiVar4" * (pointer_declarator "****ppppppiVar4" * (pointer_declarator "***ppppppiVar4" * (pointer_declarator "**ppppppiVar4" * (pointer_declarator "*ppppppiVar4" * identifier)))))) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *******pppppppiVar6;" primitive_type (pointer_declarator "*******pppppppiVar6" * (pointer_declarator "******pppppppiVar6" * (pointer_declarator "*****pppppppiVar6" * (pointer_declarator "****pppppppiVar6" * (pointer_declarator "***pppppppiVar6" * (pointer_declarator "**pppppppiVar6" * (pointer_declarator "*pppppppiVar6" * 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 "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int ******ppppppiVar9;" primitive_type (pointer_declarator "******ppppppiVar9" * (pointer_declarator "*****ppppppiVar9" * (pointer_declarator "****ppppppiVar9" * (pointer_declarator "***ppppppiVar9" * (pointer_declarator "**ppppppiVar9" * (pointer_declarator "*ppppppiVar9" * identifier)))))) ;) (declaration "uint uVar10;" type_identifier 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 *******pppppppiVar13;" primitive_type (pointer_declarator "*******pppppppiVar13" * (pointer_declarator "******pppppppiVar13" * (pointer_declarator "*****pppppppiVar13" * (pointer_declarator "****pppppppiVar13" * (pointer_declarator "***pppppppiVar13" * (pointer_declarator "**pppppppiVar13" * (pointer_declarator "*pppppppiVar13" * 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 "int *******pppppppiVar15;" primitive_type (pointer_declarator "*******pppppppiVar15" * (pointer_declarator "******pppppppiVar15" * (pointer_declarator "*****pppppppiVar15" * (pointer_declarator "****pppppppiVar15" * (pointer_declarator "***pppppppiVar15" * (pointer_declarator "**pppppppiVar15" * (pointer_declarator "*pppppppiVar15" * identifier))))))) ;) (declaration "int iVar16;" primitive_type 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 *****pppppiVar18;" primitive_type (pointer_declarator "*****pppppiVar18" * (pointer_declarator "****pppppiVar18" * (pointer_declarator "***pppppiVar18" * (pointer_declarator "**pppppiVar18" * (pointer_declarator "*pppppiVar18" * identifier))))) ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int ******ppppppiVar19;" primitive_type (pointer_declarator "******ppppppiVar19" * (pointer_declarator "*****ppppppiVar19" * (pointer_declarator "****ppppppiVar19" * (pointer_declarator "***ppppppiVar19" * (pointer_declarator "**ppppppiVar19" * (pointer_declarator "*ppppppiVar19" * identifier)))))) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int *******pppppppiVar21;" primitive_type (pointer_declarator "*******pppppppiVar21" * (pointer_declarator "******pppppppiVar21" * (pointer_declarator "*****pppppppiVar21" * (pointer_declarator "****pppppppiVar21" * (pointer_declarator "***pppppppiVar21" * (pointer_declarator "**pppppppiVar21" * (pointer_declarator "*pppppppiVar21" * identifier))))))) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "int *******pppppppiVar23;" primitive_type (pointer_declarator "*******pppppppiVar23" * (pointer_declarator "******pppppppiVar23" * (pointer_declarator "*****pppppppiVar23" * (pointer_declarator "****pppppppiVar23" * (pointer_declarator "***pppppppiVar23" * (pointer_declarator "**pppppppiVar23" * (pointer_declarator "*pppppppiVar23" * 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 iVar25;" primitive_type identifier ;) (declaration "int ******ppppppiVar26;" primitive_type (pointer_declarator "******ppppppiVar26" * (pointer_declarator "*****ppppppiVar26" * (pointer_declarator "****ppppppiVar26" * (pointer_declarator "***ppppppiVar26" * (pointer_declarator "**ppppppiVar26" * (pointer_declarator "*ppppppiVar26" * identifier)))))) ;) (declaration "int ****ppppiVar27;" primitive_type (pointer_declarator "****ppppiVar27" * (pointer_declarator "***ppppiVar27" * (pointer_declarator "**ppppiVar27" * (pointer_declarator "*ppppiVar27" * identifier)))) ;) (declaration "uint uVar28;" 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 uVar29;" 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 *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "undefined1 auStack_3e0 [12];" type_identifier (array_declarator "auStack_3e0 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_3d4;" primitive_type identifier ;) (declaration "int *******pppppppiStack_3d0;" primitive_type (pointer_declarator "*******pppppppiStack_3d0" * (pointer_declarator "******pppppppiStack_3d0" * (pointer_declarator "*****pppppppiStack_3d0" * (pointer_declarator "****pppppppiStack_3d0" * (pointer_declarator "***pppppppiStack_3d0" * (pointer_declarator "**pppppppiStack_3d0" * (pointer_declarator "*pppppppiStack_3d0" * identifier))))))) ;) (declaration "int ******ppppppiStack_3cc;" primitive_type (pointer_declarator "******ppppppiStack_3cc" * (pointer_declarator "*****ppppppiStack_3cc" * (pointer_declarator "****ppppppiStack_3cc" * (pointer_declarator "***ppppppiStack_3cc" * (pointer_declarator "**ppppppiStack_3cc" * (pointer_declarator "*ppppppiStack_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 "undefined4 uStack_3c4;" type_identifier identifier ;) (declaration "int *******pppppppiStack_3c0;" primitive_type (pointer_declarator "*******pppppppiStack_3c0" * (pointer_declarator "******pppppppiStack_3c0" * (pointer_declarator "*****pppppppiStack_3c0" * (pointer_declarator "****pppppppiStack_3c0" * (pointer_declarator "***pppppppiStack_3c0" * (pointer_declarator "**pppppppiStack_3c0" * (pointer_declarator "*pppppppiStack_3c0" * 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 "int *******pppppppiStack_3b4;" primitive_type (pointer_declarator "*******pppppppiStack_3b4" * (pointer_declarator "******pppppppiStack_3b4" * (pointer_declarator "*****pppppppiStack_3b4" * (pointer_declarator "****pppppppiStack_3b4" * (pointer_declarator "***pppppppiStack_3b4" * (pointer_declarator "**pppppppiStack_3b4" * (pointer_declarator "*pppppppiStack_3b4" * identifier))))))) ;) (declaration "int *******pppppppiStack_3b0;" primitive_type (pointer_declarator "*******pppppppiStack_3b0" * (pointer_declarator "******pppppppiStack_3b0" * (pointer_declarator "*****pppppppiStack_3b0" * (pointer_declarator "****pppppppiStack_3b0" * (pointer_declarator "***pppppppiStack_3b0" * (pointer_declarator "**pppppppiStack_3b0" * (pointer_declarator "*pppppppiStack_3b0" * identifier))))))) ;) (declaration "code *pcStack_3ac;" type_identifier (pointer_declarator "*pcStack_3ac" * identifier) ;) (declaration "int *******local_398;" primitive_type (pointer_declarator "*******local_398" * (pointer_declarator "******local_398" * (pointer_declarator "*****local_398" * (pointer_declarator "****local_398" * (pointer_declarator "***local_398" * (pointer_declarator "**local_398" * (pointer_declarator "*local_398" * identifier))))))) ;) (declaration "undefined4 local_394;" type_identifier identifier ;) (declaration "code *local_390;" type_identifier (pointer_declarator "*local_390" * identifier) ;) (declaration "int *local_384;" primitive_type (pointer_declarator "*local_384" * identifier) ;) (declaration "int *******local_380;" primitive_type (pointer_declarator "*******local_380" * (pointer_declarator "******local_380" * (pointer_declarator "*****local_380" * (pointer_declarator "****local_380" * (pointer_declarator "***local_380" * (pointer_declarator "**local_380" * (pointer_declarator "*local_380" * identifier))))))) ;) (declaration "int *******local_37c;" primitive_type (pointer_declarator "*******local_37c" * (pointer_declarator "******local_37c" * (pointer_declarator "*****local_37c" * (pointer_declarator "****local_37c" * (pointer_declarator "***local_37c" * (pointer_declarator "**local_37c" * (pointer_declarator "*local_37c" * identifier))))))) ;) (declaration "int local_378;" primitive_type identifier ;) (declaration "int ******local_374;" primitive_type (pointer_declarator "******local_374" * (pointer_declarator "*****local_374" * (pointer_declarator "****local_374" * (pointer_declarator "***local_374" * (pointer_declarator "**local_374" * (pointer_declarator "*local_374" * identifier)))))) ;) (declaration "int *******local_370;" primitive_type (pointer_declarator "*******local_370" * (pointer_declarator "******local_370" * (pointer_declarator "*****local_370" * (pointer_declarator "****local_370" * (pointer_declarator "***local_370" * (pointer_declarator "**local_370" * (pointer_declarator "*local_370" * identifier))))))) ;) (declaration "undefined4 local_36c;" type_identifier identifier ;) (declaration "int ******local_368;" primitive_type (pointer_declarator "******local_368" * (pointer_declarator "*****local_368" * (pointer_declarator "****local_368" * (pointer_declarator "***local_368" * (pointer_declarator "**local_368" * (pointer_declarator "*local_368" * identifier)))))) ;) (declaration "undefined4 local_364;" type_identifier identifier ;) (declaration "int ******local_35c;" primitive_type (pointer_declarator "******local_35c" * (pointer_declarator "*****local_35c" * (pointer_declarator "****local_35c" * (pointer_declarator "***local_35c" * (pointer_declarator "**local_35c" * (pointer_declarator "*local_35c" * identifier)))))) ;) (declaration "undefined4 local_358;" type_identifier identifier ;) (declaration "int ******local_354 [32];" primitive_type (pointer_declarator "******local_354 [32]" * (pointer_declarator "*****local_354 [32]" * (pointer_declarator "****local_354 [32]" * (pointer_declarator "***local_354 [32]" * (pointer_declarator "**local_354 [32]" * (pointer_declarator "*local_354 [32]" * (array_declarator "local_354 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_2d4 [32];" primitive_type (pointer_declarator "******local_2d4 [32]" * (pointer_declarator "*****local_2d4 [32]" * (pointer_declarator "****local_2d4 [32]" * (pointer_declarator "***local_2d4 [32]" * (pointer_declarator "**local_2d4 [32]" * (pointer_declarator "*local_2d4 [32]" * (array_declarator "local_2d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_254 [32];" primitive_type (pointer_declarator "******local_254 [32]" * (pointer_declarator "*****local_254 [32]" * (pointer_declarator "****local_254 [32]" * (pointer_declarator "***local_254 [32]" * (pointer_declarator "**local_254 [32]" * (pointer_declarator "*local_254 [32]" * (array_declarator "local_254 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_1d4 [32];" primitive_type (pointer_declarator "******local_1d4 [32]" * (pointer_declarator "*****local_1d4 [32]" * (pointer_declarator "****local_1d4 [32]" * (pointer_declarator "***local_1d4 [32]" * (pointer_declarator "**local_1d4 [32]" * (pointer_declarator "*local_1d4 [32]" * (array_declarator "local_1d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_154 [32];" primitive_type (pointer_declarator "******local_154 [32]" * (pointer_declarator "*****local_154 [32]" * (pointer_declarator "****local_154 [32]" * (pointer_declarator "***local_154 [32]" * (pointer_declarator "**local_154 [32]" * (pointer_declarator "*local_154 [32]" * (array_declarator "local_154 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_d4 [32];" primitive_type (pointer_declarator "******local_d4 [32]" * (pointer_declarator "*****local_d4 [32]" * (pointer_declarator "****local_d4 [32]" * (pointer_declarator "***local_d4 [32]" * (pointer_declarator "**local_d4 [32]" * (pointer_declarator "*local_d4 [32]" * (array_declarator "local_d4 [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******local_54;" primitive_type (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier)))))) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (expression_statement "iVar16 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar16 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(iVar16 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" (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,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" ( (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 + -0x3514" identifier + number_literal) ))) ;) (expression_statement "param_1 = unaff_s1;" (assignment_expression "param_1 = unaff_s1" identifier = identifier) ;) }) (else_clause "else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" { (expression_statement "unaff_s2 = iVar16 + 0xac;" (assignment_expression "unaff_s2 = iVar16 + 0xac" identifier = (binary_expression "iVar16 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" (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 "(unaff_s2)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (iVar2 != 0) goto LAB_0001bb7c;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bb7c;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xfc)" * (cast_expression "(undefined1 *)(param_1 + 0xfc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)puVar1)(unaff_s2)" identifier = (call_expression "(*(code *)puVar1)(unaff_s2)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1))" ( (binary_expression "(*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar16 + 0xdc) != -1)" ( (binary_expression "*(int *)(iVar16 + 0xdc) != -1" (pointer_expression "*(int *)(iVar16 + 0xdc)" * (cast_expression "(int *)(iVar16 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xdc)" ( (binary_expression "iVar16 + 0xdc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" ( (comma_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1" (assignment_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar16 + 0xdc)" * (cast_expression "(int *)(iVar16 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xdc)" ( (binary_expression "iVar16 + 0xdc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) , (binary_expression "iVar2 < 1" identifier < number_literal)) ))) )) (compound_statement "{\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" { (expression_statement "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" if (parenthesized_expression "(iVar2 != 0xb)" ( (binary_expression "iVar2 != 0xb" identifier != number_literal) )) (compound_statement "{\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" { (expression_statement "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);" (assignment_expression "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" identifier = (call_expression "FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" identifier (argument_list "(iVar16,PTR_DAT_0003f05c + -0x34cc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x34cc" identifier + number_literal) )))) ;) (return_statement "return iVar16;" return identifier ;) })) })) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\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,0xb06,\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) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" statement_identifier : (expression_statement "pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" (assignment_expression "pppppppiVar11 = *(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 "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;)) (expression_statement "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);" (assignment_expression "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0)" identifier = (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x51e0)" ( (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) )))) ;) (expression_statement "pcVar30 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar30 = *(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 "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);" (assignment_expression "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0)" identifier = (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x40a0)" ( (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) )))) ;) (expression_statement "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);" (call_expression "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pppppppiVar11,pppppppiVar13,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "local_390 = pcVar30 + 0x2b48c;" (assignment_expression "local_390 = pcVar30 + 0x2b48c" identifier = (binary_expression "pcVar30 + 0x2b48c" identifier + number_literal)) ;) (expression_statement "local_384 = *(int **)(pcVar30 + 0x23748);" (assignment_expression "local_384 = *(int **)(pcVar30 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x23748)" * (cast_expression "(int **)(pcVar30 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x23748)" ( (binary_expression "pcVar30 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar26 = (int ******)&local_35c;" (assignment_expression "ppppppiVar26 = (int ******)&local_35c" identifier = (cast_expression "(int ******)&local_35c" ( (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 "&local_35c" & identifier))) ;) (expression_statement "uVar22 = 0x8000001f;" (assignment_expression "uVar22 = 0x8000001f" identifier = number_literal) ;) (expression_statement "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "local_54 = (int ******)*local_384;" (assignment_expression "local_54 = (int ******)*local_384" identifier = (cast_expression "(int ******)*local_384" ( (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 "*local_384" * identifier))) ;) (expression_statement "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);" (assignment_expression "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40)" identifier = (cast_expression "(int *******)((uint)ppppppiVar19[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)ppppppiVar19[0x3e] & 0x40)" ( (binary_expression "(uint)ppppppiVar19[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar19[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar19[0x3e]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "local_50 = iVar16;" (assignment_expression "local_50 = iVar16" identifier = identifier) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "local_48 = unaff_s2;" (assignment_expression "local_48 = unaff_s2" identifier = identifier) ;) (expression_statement "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();" (assignment_expression "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))()" identifier = (cast_expression "(int ******)(**(code **)(pcVar30 + 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 **)(pcVar30 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x23740))" ( (pointer_expression "**(code **)(pcVar30 + 0x23740)" * (pointer_expression "*(code **)(pcVar30 + 0x23740)" * (cast_expression "(code **)(pcVar30 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x23740)" ( (binary_expression "pcVar30 + 0x23740" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar11[0x17] = ppppppiVar4;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar4" (subscript_expression "pppppppiVar11[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7974)" ( (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(local_390 + -0x7fac)" * (cast_expression "(int *)(local_390 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (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  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" statement_identifier : (expression_statement "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" (assignment_expression "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38)" identifier = (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar19 + 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 *)(ppppppiVar19 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar19 + 0x38)" ( (binary_expression "ppppppiVar19 + 0x38" identifier + number_literal) ))))) ;)) (if_statement "if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(pppppppiVar17 != (int *******)0x0)" ( (binary_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)) )) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" { (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" statement_identifier : (if_statement "if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" if (parenthesized_expression "(ppppppiVar9 != (int ******)0x13)" ( (binary_expression "ppppppiVar9 != (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      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x3;" (assignment_expression "pppppppiVar13 = (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 *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }" if (parenthesized_expression "(*(char *)(ppppppiVar19 + 0x38) == '\0')" ( (binary_expression "*(char *)(ppppppiVar19 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar19 + 0x38)" * (cast_expression "(char *)(ppppppiVar19 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar19 + 0x38)" ( (binary_expression "ppppppiVar19 + 0x38" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppiVar13 = (int *******)0x1;\n      }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" statement_identifier : (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" { (expression_statement "(**(code **)(local_390 + -0x7d58))();" (call_expression "(**(code **)(local_390 + -0x7d58))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d58))" ( (pointer_expression "**(code **)(local_390 + -0x7d58)" * (pointer_expression "*(code **)(local_390 + -0x7d58)" * (cast_expression "(code **)(local_390 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d58)" ( (binary_expression "local_390 + -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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 **)(local_390 + -0x7ec8))();" (call_expression "(**(code **)(local_390 + -0x7ec8))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ec8))" ( (pointer_expression "**(code **)(local_390 + -0x7ec8)" * (pointer_expression "*(code **)(local_390 + -0x7ec8)" * (cast_expression "(code **)(local_390 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ec8)" ( (binary_expression "local_390 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pppppppiVar14 = (int *******)0x8;" (assignment_expression "pppppppiVar14 = (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 (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" if (parenthesized_expression "(ppppppiVar19[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar19[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar19[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      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x28d8)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7e10))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7e10))()" identifier = (call_expression "(**(code **)(local_390 + -0x7e10))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e10))" ( (pointer_expression "**(code **)(local_390 + -0x7e10)" * (pointer_expression "*(code **)(local_390 + -0x7e10)" * (cast_expression "(code **)(local_390 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e10)" ( (binary_expression "local_390 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" if (parenthesized_expression "((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb))" ( (binary_expression "(iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" (parenthesized_expression "(iVar16 < 1)" ( (binary_expression "iVar16 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" ( (comma_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar3 != 0xb" (pointer_expression "*piVar3" * identifier) != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x341c)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" identifier (argument_list "(ppppppiVar19)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0001bd0c;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;" if (parenthesized_expression "(ppppppiVar9 == (int ******)0x13)" ( (binary_expression "ppppppiVar9 == (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 *******)ppppppiVar19[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar19[0x3c]" identifier = (cast_expression "(int *******)ppppppiVar19[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 "ppppppiVar19[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = 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    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "ppppppiVar4 = (int ******)ppppppiVar19[0x37];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar19[0x37]" identifier = (cast_expression "(int ******)ppppppiVar19[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 "ppppppiVar19[0x37]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar23 = unaff_s6;" (assignment_expression "pppppppiVar23 = unaff_s6" identifier = identifier) ;) (if_statement "if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" ( (binary_expression "pppppppiVar21 == (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      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "local_380 = local_354;" (assignment_expression "local_380 = local_354" identifier = identifier) ;) (expression_statement "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" identifier = identifier) ;) (do_statement "do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);" do (compound_statement "{\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      }" { (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" * 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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" identifier = (binary_expression "pppppppiVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar13 != local_2d4)" ( (binary_expression "pppppppiVar13 != local_2d4" identifier != identifier) )) ;) (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "iVar16 = FUN_00022130(ppppppiVar4,local_380,0);" (assignment_expression "iVar16 = FUN_00022130(ppppppiVar4,local_380,0)" identifier = (call_expression "FUN_00022130(ppppppiVar4,local_380,0)" identifier (argument_list "(ppppppiVar4,local_380,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "pppppppiVar15 = (int *******)0x0;" (assignment_expression "pppppppiVar15 = (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 "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (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 "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar19[0x37] + 1,local_380,0)" ( (binary_expression "(int)ppppppiVar19[0x37] + 1" (cast_expression "(int)ppppppiVar19[0x37]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppiVar19[0x37]" identifier [ number_literal ])) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar16) goto LAB_0001c380;" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (goto_statement "goto LAB_0001c380;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) (if_statement "if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pppppppiVar14 == (int *******)0x4)" ( (binary_expression "pppppppiVar14 == (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 "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14)" ( identifier ))))) ;) (expression_statement "pppppppiVar17 = pppppppiVar14;" (assignment_expression "pppppppiVar17 = pppppppiVar14" identifier = identifier) ;) (expression_statement "pppppppiVar21 = pppppppiVar23;" (assignment_expression "pppppppiVar21 = pppppppiVar23" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" statement_identifier : (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);" (call_expression "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14)" identifier (argument_list "(pppppppiVar23,pppppppiVar13,pppppppiVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 "local_358 = 0x10000;" (assignment_expression "local_358 = 0x10000" identifier = number_literal) ;) (expression_statement "local_35c = ppppppiVar4;" (assignment_expression "local_35c = ppppppiVar4" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar26,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar3 != 4)" ( (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];" statement_identifier : (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (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 "uVar5 = (**(code **)(local_390 + -0x7ddc))();" (assignment_expression "uVar5 = (**(code **)(local_390 + -0x7ddc))()" identifier = (call_expression "(**(code **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);" (call_expression "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5)" identifier (argument_list "(pppppppiVar17,pppppppiVar13,uVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" else (compound_statement "{\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (labeled_statement "LAB_0001c380:\n      pppppppiVar13 = &local_368;" statement_identifier : (expression_statement "pppppppiVar13 = &local_368;" (assignment_expression "pppppppiVar13 = &local_368" identifier = (pointer_expression "&local_368" & identifier)) ;)) (expression_statement "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);" (call_expression "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8)" (parenthesized_expression "(**(code **)(local_390 + -0x7d18))" ( (pointer_expression "**(code **)(local_390 + -0x7d18)" * (pointer_expression "*(code **)(local_390 + -0x7d18)" * (cast_expression "(code **)(local_390 + -0x7d18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d18)" ( (binary_expression "local_390 + -0x7d18" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar19[0x37],pppppppiVar13,8)" ( (subscript_expression "ppppppiVar19[0x37]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" if (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" ( (binary_expression "pppppppiVar23 != (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 "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (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 ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))))" ( (binary_expression "(ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar4 != (int ******)0x2)" ( (binary_expression "ppppppiVar4 != (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' || (ppppppiVar4 != (int ******)0x0)))" ( (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (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 "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = 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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "iVar16 = FUN_0002186c();" (assignment_expression "iVar16 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" if (parenthesized_expression "((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25])" ( (binary_expression "(int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar16 - (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 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" else (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" { (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]))" identifier = (cast_expression "(int *******)((int)unaff_s7 - (iVar16 - (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 - (iVar16 - (int)pppppppiVar11[0x25]))" ( (binary_expression "(int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(iVar16 - (int)pppppppiVar11[0x25])" ( (binary_expression "iVar16 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ]))) ))) )))) ;) }))) (expression_statement "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "local_370 = unaff_s7;" (assignment_expression "local_370 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (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)) ;) (if_statement "if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pppppppiVar21 != (int *******)0x0)" ( (binary_expression "pppppppiVar21 != (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 = local_2d4;" statement_identifier : (expression_statement "unaff_s6 = local_2d4;" (assignment_expression "unaff_s6 = local_2d4" identifier = identifier) ;)) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" identifier = identifier) ;) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);" do (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    }" { (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" * 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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" identifier = (binary_expression "pppppppiVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s6 != pppppppiVar6)" ( (binary_expression "unaff_s6 != pppppppiVar6" identifier != identifier) )) ;) (expression_statement "unaff_s7 = local_254;" (assignment_expression "unaff_s7 = local_254" identifier = identifier) ;) (expression_statement "pppppppiVar6 = unaff_s6;" (assignment_expression "pppppppiVar6 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);" do (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    }" { (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" * 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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" identifier = (binary_expression "pppppppiVar6 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar7 = unaff_s7;" (assignment_expression "pppppppiVar7 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pppppppiVar6)" ( (binary_expression "unaff_s7 != pppppppiVar6" identifier != identifier) )) ;) (do_statement "do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != 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 "(local_1d4 != pppppppiVar7)" ( (binary_expression "local_1d4 != pppppppiVar7" identifier != identifier) )) ;) (expression_statement "local_378 = -1;" (assignment_expression "local_378 = -1" identifier = number_literal) ;) (if_statement "if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x1)" ( (binary_expression "ppppppiVar4 == (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" identifier = identifier) ;) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s6,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1ec:\n      iVar16 = local_378 + 1;" statement_identifier : (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" identifier = (binary_expression "local_378 + 1" identifier + number_literal)) ;)) (expression_statement "pppppppiVar6 = local_37c;" (assignment_expression "pppppppiVar6 = local_37c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = local_380;" (assignment_expression "pppppppiVar14 = local_380" identifier = identifier) ;) }) (else_clause "else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" else (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = local_354;" (assignment_expression "local_380 = local_354" identifier = identifier) ;) (expression_statement "local_37c = pppppppiVar14;" (assignment_expression "local_37c = pppppppiVar14" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],local_354,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" identifier = (binary_expression "local_378 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar6 = local_380;" (assignment_expression "pppppppiVar6 = local_380" identifier = identifier) ;) (expression_statement "pppppppiVar14 = local_37c;" (assignment_expression "pppppppiVar14 = local_37c" identifier = identifier) ;) }) (else_clause "else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" else (compound_statement "{\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" { (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" ( (binary_expression "ppppppiVar4 == (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        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" { (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" identifier = identifier) ;) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s7,&local_378)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_378" & identifier) )))) ;) (if_statement "if (iVar16 != 0) goto LAB_0001c1ec;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001c1ec;" goto statement_identifier ;)) (labeled_statement "LAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" statement_identifier : (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x348c)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -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_0001bcc4;" goto statement_identifier ;) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" identifier = identifier) ;) (if_statement "if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x3)" ( (binary_expression "ppppppiVar4 == (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 ;)) }))))) (expression_statement "pppppppiVar13 = pppppppiVar6;" (assignment_expression "pppppppiVar13 = pppppppiVar6" identifier = identifier) ;) (expression_statement "pppppppiVar15 = unaff_s7;" (assignment_expression "pppppppiVar15 = unaff_s7" identifier = identifier) ;) (expression_statement "local_398 = pppppppiVar14;" (assignment_expression "local_398 = pppppppiVar14" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar16,pppppppiVar13,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" { (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) (expression_statement "unaff_s6 = pppppppiVar14;" (assignment_expression "unaff_s6 = pppppppiVar14" identifier = identifier) ;) (if_statement "if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" if (parenthesized_expression "(pppppppiVar14 != (int *******)0x4)" ( (binary_expression "pppppppiVar14 != (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        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" { (expression_statement "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14)" ( identifier ))))) ;) (expression_statement "pppppppiVar17 = pppppppiVar23;" (assignment_expression "pppppppiVar17 = pppppppiVar23" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" else (compound_statement "{\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" { (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -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)local_354[iVar16]) != 0);" (assignment_expression "unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 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)local_354[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]" (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)local_354[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_354[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);" (assignment_expression "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 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)local_2d4[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]" (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)local_2d4[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_2d4[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" identifier = (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" ( (pointer_expression "**(code **)(local_390 + -0x7d84)" * (pointer_expression "*(code **)(local_390 + -0x7d84)" * (cast_expression "(code **)(local_390 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d84)" ( (binary_expression "local_390 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);" (assignment_expression "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" identifier = (cast_expression "(int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 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)local_254[iVar16]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]" (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)local_254[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_254[iVar16]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar13 = unaff_s6;" (assignment_expression "pppppppiVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;" if (parenthesized_expression "(ppppppiVar9 == (int ******)0x14)" ( (binary_expression "ppppppiVar9 == (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 "local_370 = (int *******)0x0;" (assignment_expression "local_370 = (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  local_36c = 0;" statement_identifier : (expression_statement "local_36c = 0;" (assignment_expression "local_36c = 0" identifier = number_literal) ;)) (expression_statement "pppppppiVar14 = (int *******)&local_370;" (assignment_expression "pppppppiVar14 = (int *******)&local_370" identifier = (cast_expression "(int *******)&local_370" ( (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 "&local_370" & identifier))) ;) (if_statement "if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" ( (binary_expression "pppppppiVar21 == (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  local_35c = pppppppiVar11[0x29];" statement_identifier : (expression_statement "local_35c = pppppppiVar11[0x29];" (assignment_expression "local_35c = pppppppiVar11[0x29]" identifier = (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) ;)) (expression_statement "local_358 = 0;" (assignment_expression "local_358 = 0" identifier = number_literal) ;) (if_statement "if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x1)" ( (binary_expression "ppppppiVar4 != (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 (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "local_358 = 0x30000;" (assignment_expression "local_358 = 0x30000" identifier = number_literal) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" ( (binary_expression "ppppppiVar4 == (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      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" { (expression_statement "local_358 = 0x20000;" (assignment_expression "local_358 = 0x20000" identifier = number_literal) ;) (goto_statement "goto LAB_0001bd54;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x3)" ( (binary_expression "ppppppiVar4 != (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_0001bd54;" goto statement_identifier ;)) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "local_358 = 0x60000;" (assignment_expression "local_358 = 0x60000" identifier = number_literal) ;) (labeled_statement "LAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" statement_identifier : (if_statement "if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" if (parenthesized_expression "(pppppppiVar14 == (int *******)0x0)" ( (binary_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)) )) (compound_statement "{\n    iVar16 = -1;\n  }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    iVar16 = (int)local_370 * 1000;\n  }" else (compound_statement "{\n    iVar16 = (int)local_370 * 1000;\n  }" { (expression_statement "iVar16 = (int)local_370 * 1000;" (assignment_expression "iVar16 = (int)local_370 * 1000" identifier = (binary_expression "(int)local_370 * 1000" (cast_expression "(int)local_370" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) })))) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar26,1,iVar16)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" { (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar3 != 4)" ( (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f)" identifier = (cast_expression "(int *******)((local_358 << 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 "((local_358 << 0x1d) >> 0x1f)" ( (binary_expression "(local_358 << 0x1d) >> 0x1f" (parenthesized_expression "(local_358 << 0x1d)" ( (binary_expression "local_358 << 0x1d" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);" (assignment_expression "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0)" identifier = (cast_expression "(int *******)(uint)((local_358 & 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)((local_358 & 0xba) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((local_358 & 0xba) != 0)" ( (binary_expression "(local_358 & 0xba) != 0" (parenthesized_expression "(local_358 & 0xba)" ( (binary_expression "local_358 & 0xba" identifier & number_literal) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);" (assignment_expression "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1)" identifier = (cast_expression "(int *******)((int)local_358._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)local_358._2_2_ & 1)" ( (binary_expression "(int)local_358._2_2_ & 1" (cast_expression "(int)local_358._2_2_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_358._2_2_" identifier . field_identifier)) & number_literal) )))) ;) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;" if (parenthesized_expression "(ppppppiVar9 != (int ******)0x14)" ( (binary_expression "ppppppiVar9 != (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 ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" statement_identifier : (if_statement "if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" if (parenthesized_expression "((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" ( (binary_expression "(ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar19[0x12] != (int *****)0x0)" ( (binary_expression "ppppppiVar19[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar19[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 "(pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" ( (comma_expression "pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar15 = (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    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" { (expression_statement "pppppppiVar14 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar14 = pppppppiVar11 + 0xb" identifier = (binary_expression "pppppppiVar11 + 0xb" identifier + number_literal)) ;) (expression_statement "pppppppiVar13 = pppppppiVar11;" (assignment_expression "pppppppiVar13 = pppppppiVar11" identifier = identifier) ;) (expression_statement "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);" (call_expression "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13])" (parenthesized_expression "(*(code *)ppppppiVar19[0x12])" ( (pointer_expression "*(code *)ppppppiVar19[0x12]" * (cast_expression "(code *)ppppppiVar19[0x12]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppiVar19[0x12]" identifier [ number_literal ]))) )) (argument_list "(ppppppiVar19[0x13])" ( (subscript_expression "ppppppiVar19[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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }" { (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" * (cast_expression "(undefined4 *)(local_390 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7e20)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0)" identifier = (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7be0)" ( (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(local_390 + -0x7fac)" * (cast_expression "(int *)(local_390 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" { (expression_statement "unaff_s7 = local_1d4;" (assignment_expression "unaff_s7 = local_1d4" identifier = identifier) ;) (expression_statement "pppppppiVar23 = unaff_s7;" (assignment_expression "pppppppiVar23 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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 "(pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)" ( (comma_expression "pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar24 = local_154" 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          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);" do (compound_statement "{\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        }" { (expression_statement "pppppppiVar24 = local_154;" (assignment_expression "pppppppiVar24 = local_154" identifier = identifier) ;) (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" * 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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" identifier = (binary_expression "pppppppiVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar17 = local_d4;" (assignment_expression "pppppppiVar17 = local_d4" identifier = identifier) ;) (expression_statement "pppppppiVar13 = pppppppiVar24;" (assignment_expression "pppppppiVar13 = pppppppiVar24" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar24 != pppppppiVar23)" ( (binary_expression "pppppppiVar24 != pppppppiVar23" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);" do (compound_statement "{\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        }" { (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" * 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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" identifier = (binary_expression "pppppppiVar13 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar23 = pppppppiVar17;" (assignment_expression "pppppppiVar23 = pppppppiVar17" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar17 != pppppppiVar13)" ( (binary_expression "pppppppiVar17 != pppppppiVar13" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);" do (compound_statement "{\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        }" { (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" * 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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" identifier = (binary_expression "pppppppiVar23 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar26 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar26 = (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 "(pppppppiVar23 != &local_54)" ( (binary_expression "pppppppiVar23 != &local_54" identifier != (pointer_expression "&local_54" & identifier)) )) ;) (expression_statement "local_394 = 0x400;" (assignment_expression "local_394 = 0x400" identifier = number_literal) ;) (expression_statement "local_398 = &local_374;" (assignment_expression "local_398 = &local_374" identifier = (pointer_expression "&local_374" & identifier)) ;) (expression_statement "local_374 = (int ******)0xffffffff;" (assignment_expression "local_374 = (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 "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" identifier = identifier) ;) (expression_statement "iVar16 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar16 = 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 (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" { (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3434)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -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 (local_374 != (int ******)0xffffffff) break;" if (parenthesized_expression "(local_374 != (int ******)0xffffffff)" ( (binary_expression "local_374 != (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        pppppppiVar15 = pppppppiVar17;" statement_identifier : (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" 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 "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) })) (expression_statement "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (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         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" if (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" ( (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (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 "(local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" ( (comma_expression "local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "local_398 = (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        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" { (expression_statement "local_398 = &local_368;" (assignment_expression "local_398 = &local_368" identifier = (pointer_expression "&local_368" & identifier)) ;) (expression_statement "local_368 = (int ******)0x0;" (assignment_expression "local_368 = (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 "local_364 = 0;" (assignment_expression "local_364 = 0" identifier = number_literal) ;) })) (expression_statement "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" identifier = identifier) ;) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" identifier = (call_expression "(**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" ( (pointer_expression "**(code **)(local_390 + -0x7d6c)" * (pointer_expression "*(code **)(local_390 + -0x7d6c)" * (cast_expression "(code **)(local_390 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d6c)" ( (binary_expression "local_390 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)local_374 + 1)" ( (binary_expression "(int)local_374 + 1" (cast_expression "(int)local_374" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (-1 < iVar16) goto LAB_0001c4bc;" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (goto_statement "goto LAB_0001c4bc;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar17 = (int *******)*puVar8;" (assignment_expression "pppppppiVar17 = (int *******)*puVar8" identifier = (cast_expression "(int *******)*puVar8" ( (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 "*puVar8" * identifier))) ;) }) while (parenthesized_expression "(pppppppiVar17 == (int *******)0x4)" ( (binary_expression "pppppppiVar17 == (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 "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" ( (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 **)(local_390 + -0x7ddc))(pppppppiVar17)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar17)" ( identifier ))))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar14 = pppppppiVar17;" (assignment_expression "pppppppiVar14 = pppppppiVar17" identifier = identifier) ;) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" identifier (argument_list "(ppppppiVar19)" ( identifier ))) ;) }) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" else (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" { (expression_statement "pppppppiVar13 = local_d4;" (assignment_expression "pppppppiVar13 = local_d4" identifier = identifier) ;) (expression_statement "local_d4[1] = (int ******)0x0;" (assignment_expression "local_d4[1] = (int ******)0x0" (subscript_expression "local_d4[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 "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7b40)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_d4[3] = (int ******)0x0;" (assignment_expression "local_d4[3] = (int ******)0x0" (subscript_expression "local_d4[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 "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40)" identifier = (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7c40)" ( (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" * (cast_expression "(int *)(local_390 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd8)" ( (binary_expression "local_390 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" * (cast_expression "(undefined4 *)(local_390 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fac)" ( (binary_expression "local_390 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "local_d4[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "local_d4[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "local_d4[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 "local_d4[2] = unaff_s6[0x10];" (assignment_expression "local_d4[2] = unaff_s6[0x10]" (subscript_expression "local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }" { (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))" ( (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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 "(pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)" ( (comma_expression "pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar17 = pppppppiVar13" 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          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (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          pppppppiVar14 = (int *******)0xffffffff;\n        }" { (expression_statement "pppppppiVar14 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar14 = (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          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" else (compound_statement "{\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" { (expression_statement "pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar14 = (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" identifier = (call_expression "(**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" ( (pointer_expression "**(code **)(local_390 + -0x7dac)" * (pointer_expression "*(code **)(local_390 + -0x7dac)" * (cast_expression "(code **)(local_390 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7dac)" ( (binary_expression "local_390 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar13,2)" ( identifier , number_literal )))) ;) (if_statement "if (iVar16 < 0) break;" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar13);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar13)" identifier (argument_list "(unaff_s6,pppppppiVar13)" ( identifier , identifier ))) ;) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" ( (pointer_expression "**(code **)(local_390 + -0x7e2c)" * (pointer_expression "*(code **)(local_390 + -0x7e2c)" * (cast_expression "(code **)(local_390 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7e2c)" ( (binary_expression "local_390 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar3 == 4)" ( (binary_expression "*piVar3 == 4" (pointer_expression "*piVar3" * identifier) == number_literal) )) ;) (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (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 "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();" (assignment_expression "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))()" identifier = (cast_expression "(int *******)(**(code **)(local_390 + -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 **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" ( (pointer_expression "**(code **)(local_390 + -0x7ddc)" * (pointer_expression "*(code **)(local_390 + -0x7ddc)" * (cast_expression "(code **)(local_390 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7ddc)" ( (binary_expression "local_390 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" * (cast_expression "(int *)(local_390 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_390 + -0x7fd4)" ( (binary_expression "local_390 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar17);" (call_expression "FUN_00020df0(pppppppiVar17)" identifier (argument_list "(pppppppiVar17)" ( 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 "pcVar30 = *(code **)(local_390 + -0x7df4);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7df4)" identifier = (pointer_expression "*(code **)(local_390 + -0x7df4)" * (cast_expression "(code **)(local_390 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7df4)" ( (binary_expression "local_390 + -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 "(*pcVar30)(pppppppiVar11);" (call_expression "(*pcVar30)(pppppppiVar11)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pppppppiVar11)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" statement_identifier : (if_statement "if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" if (parenthesized_expression "(local_54 == (int ******)*local_384)" ( (binary_expression "local_54 == (int ******)*local_384" identifier == (cast_expression "(int ******)*local_384" ( (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 "*local_384" * identifier))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "pcVar30 = *(code **)(local_390 + -0x7d78);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7d78)" identifier = (pointer_expression "*(code **)(local_390 + -0x7d78)" * (cast_expression "(code **)(local_390 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_390 + -0x7d78)" ( (binary_expression "local_390 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = FUN_0001c688;" (assignment_expression "pcVar31 = FUN_0001c688" identifier = identifier) ;) (expression_statement "ppppppiVar4 = local_54;" (assignment_expression "ppppppiVar4 = local_54" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar3 = *(int **)(pcVar30 + 0x22c64);" (assignment_expression "piVar3 = *(int **)(pcVar30 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x22c64)" * (cast_expression "(int **)(pcVar30 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c64)" ( (binary_expression "pcVar30 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iStack_3d4 = *piVar3;" (assignment_expression "iStack_3d4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "*(undefined1 *)(ppppppiVar4 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar4 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar4 + 0x39)" * (cast_expression "(undefined1 *)(ppppppiVar4 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4 + 0x39)" ( (binary_expression "ppppppiVar4 + 0x39" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppiStack_3d0 = pppppppiVar17;" (assignment_expression "pppppppiStack_3d0 = pppppppiVar17" identifier = identifier) ;) (expression_statement "ppppppiStack_3cc = ppppppiVar19;" (assignment_expression "ppppppiStack_3cc = ppppppiVar19" identifier = identifier) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar21;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar21" identifier = identifier) ;) (expression_statement "uStack_3c4 = uVar22;" (assignment_expression "uStack_3c4 = uVar22" identifier = identifier) ;) (expression_statement "pppppppiStack_3c0 = pppppppiVar24;" (assignment_expression "pppppppiStack_3c0 = pppppppiVar24" identifier = identifier) ;) (expression_statement "ppppppiStack_3bc = ppppppiVar26;" (assignment_expression "ppppppiStack_3bc = ppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiStack_3b8 = unaff_s6;" (assignment_expression "pppppppiStack_3b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiStack_3b4 = unaff_s7;" (assignment_expression "pppppppiStack_3b4 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3b0 = pppppppiVar11;" (assignment_expression "pppppppiStack_3b0 = pppppppiVar11" identifier = identifier) ;) (expression_statement "pcStack_3ac = pcVar31;" (assignment_expression "pcStack_3ac = pcVar31" identifier = identifier) ;) (if_statement "if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" if (parenthesized_expression "(ppppppiVar4[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar4[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar4[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    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" { (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))();" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppiVar12 = ppppppiVar4[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x37]" identifier = (subscript_expression "ppppppiVar4[0x37]" identifier [ number_literal ])) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c90)" * (cast_expression "(code **)(pcVar30 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c90)" ( (binary_expression "pcVar30 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" else (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c90)" * (cast_expression "(code **)(pcVar30 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c90)" ( (binary_expression "pcVar30 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" { (expression_statement "(*pcVar31)(pppppiVar12,auStack_3e0,8);" (call_expression "(*pcVar31)(pppppiVar12,auStack_3e0,8)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppiVar12,auStack_3e0,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pppppiVar12 = ppppppiVar4[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x31]" identifier = (subscript_expression "ppppppiVar4[0x31]" identifier [ number_literal ])) ;) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" if (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0'))" ( (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 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)ppppppiVar4 + 0xe1) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar4 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xe1)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xe1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xe1)" ( (binary_expression "(int)ppppppiVar4 + 0xe1" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" { (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12)" ( identifier )))) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) }) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" else (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" { (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[iVar16]" identifier [ identifier ])))) ;) }))) (if_statement "if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0001afec(ppppppiVar4);\n    }" { (expression_statement "FUN_0001afec(ppppppiVar4);" (call_expression "FUN_0001afec(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) })) })) (if_statement "if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" if (parenthesized_expression "((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0))" ( (binary_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0)" ( (binary_expression "((uint)ppppppiVar4[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar4[0x3e] & 4)" ( (binary_expression "(uint)ppppppiVar4[0x3e] & 4" (cast_expression "(uint)ppppppiVar4[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar4[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppppppiVar4[3] != (int *****)0x0)" ( (binary_expression "ppppppiVar4[3] != (int *****)0x0" (subscript_expression "ppppppiVar4[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    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" { (expression_statement "iVar16 = *(int *)(pcVar30 + 0x229fc);" (assignment_expression "iVar16 = *(int *)(pcVar30 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x229fc)" * (cast_expression "(int *)(pcVar30 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x229fc)" ( (binary_expression "pcVar30 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" do (compound_statement "{\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" { (expression_statement "ppppiVar27 = pppppiVar12[0x29];" (assignment_expression "ppppiVar27 = pppppiVar12[0x29]" identifier = (subscript_expression "pppppiVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "pppppiVar18 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar18 = (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 (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" if (parenthesized_expression "(ppppiVar27 != (int ****)0xffffffff)" ( (binary_expression "ppppiVar27 != (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        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" { (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f))" identifier = (cast_expression "(int *******)(1 << ((uint)ppppiVar27 & 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)ppppiVar27 & 0x1f))" ( (binary_expression "1 << ((uint)ppppiVar27 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppppiVar27 & 0x1f)" ( (binary_expression "(uint)ppppiVar27 & 0x1f" (cast_expression "(uint)ppppiVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "ppppppiVar9 = pppppppiVar13[iVar2];" (assignment_expression "ppppppiVar9 = pppppppiVar13[iVar2]" identifier = (subscript_expression "pppppppiVar13[iVar2]" identifier [ identifier ])) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "ppppppiVar19 = pppppppiVar14[iVar2];" (assignment_expression "ppppppiVar19 = pppppppiVar14[iVar2]" identifier = (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar30 + 0x22c24)" * (pointer_expression "*(code **)(pcVar30 + 0x22c24)" * (cast_expression "(code **)(pcVar30 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c24)" ( (binary_expression "pcVar30 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar27)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);" (call_expression "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" (parenthesized_expression "(*(code *)(iVar16 + -0x7974))" ( (pointer_expression "*(code *)(iVar16 + -0x7974)" * (cast_expression "(code *)(iVar16 + -0x7974)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x7974)" ( (binary_expression "iVar16 + -0x7974" identifier + number_literal) )))) )) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar9) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar9)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar9" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar19) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar19)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar19" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2])" ( (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar15[iVar2]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppiVar15[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar15[iVar2]" identifier [ identifier ]))) )) != number_literal) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" ( (binary_expression "pppppiVar18 != (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 (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" if (parenthesized_expression "(ppppppiVar4[0x42] != (int *****)0x0)" ( (binary_expression "ppppppiVar4[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar4[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 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (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 = ppppppiVar4[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x42]" identifier = (subscript_expression "ppppppiVar4[0x42]" identifier [ number_literal ])) ;) (do_statement "do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" do (compound_statement "{\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" { (expression_statement "pppppiVar18 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar18 = (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,pppppppiVar13,pppppppiVar14,pppppppiVar15);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" identifier (argument_list "(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" ( 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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }" { (expression_statement "FUN_00014600(*pppppiVar12);" (call_expression "FUN_00014600(*pppppiVar12)" identifier (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22bb4);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22bb4)" * (cast_expression "(code **)(pcVar30 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22bb4)" ( (binary_expression "pcVar30 + 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 "(*pcVar31)(*pppppiVar12);" (call_expression "(*pcVar31)(*pppppiVar12)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" ( (binary_expression "pppppiVar18 != (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(ppppppiVar4);" (call_expression "FUN_0001ab80(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) (if_statement "if (iStack_3d4 == *piVar3) {\n    return 1;\n  }" if (parenthesized_expression "(iStack_3d4 == *piVar3)" ( (binary_expression "iStack_3d4 == *piVar3" identifier == (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar30 = *(code **)(pcVar30 + 0x22c30);" (assignment_expression "pcVar30 = *(code **)(pcVar30 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22c30)" * (cast_expression "(code **)(pcVar30 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22c30)" ( (binary_expression "pcVar30 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = iStack_3d4;" (assignment_expression "iVar16 = iStack_3d4" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar29 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar29 = *(uint *)(iVar16 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = uVar29 & 4;" (assignment_expression "uVar28 = uVar29 & 4" identifier = (binary_expression "uVar29 & 4" identifier & number_literal)) ;) (expression_statement "pppppppiVar23 = (int *******)(uVar29 & 0x8000);" (assignment_expression "pppppppiVar23 = (int *******)(uVar29 & 0x8000)" identifier = (cast_expression "(int *******)(uVar29 & 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 "(uVar29 & 0x8000)" ( (binary_expression "uVar29 & 0x8000" identifier & number_literal) )))) ;) (expression_statement "uVar10 = uVar29;" (assignment_expression "uVar10 = uVar29" identifier = identifier) ;) (if_statement "if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }" if (parenthesized_expression "(*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" * (cast_expression "(undefined4 **)(iVar16 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x108)" ( (binary_expression "iVar16 + 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    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 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 "puVar8 = *(undefined4 **)(iVar16 + 0x108);" (assignment_expression "puVar8 = *(undefined4 **)(iVar16 + 0x108)" identifier = (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" * (cast_expression "(undefined4 **)(iVar16 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x108)" ( (binary_expression "iVar16 + 0x108" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);" do (compound_statement "{\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    }" { (expression_statement "puVar20 = (undefined4 *)puVar8[2];" (assignment_expression "puVar20 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018878(puVar8);" (call_expression "FUN_00018878(puVar8)" identifier (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "FUN_00014600(*puVar8);" (call_expression "FUN_00014600(*puVar8)" identifier (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x51)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x51)" ( (binary_expression "(int)puVar8 + 0x51" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar30 + 0x22818))(*puVar8);" (call_expression "(**(code **)(pcVar30 + 0x22818))(*puVar8)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22818))" ( (pointer_expression "**(code **)(pcVar30 + 0x22818)" * (pointer_expression "*(code **)(pcVar30 + 0x22818)" * (cast_expression "(code **)(pcVar30 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22818)" ( (binary_expression "pcVar30 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) (expression_statement "puVar8 = puVar20;" (assignment_expression "puVar8 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" ( (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pppppppiVar13 = (int *******)0x0;" (assignment_expression "pppppppiVar13 = (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 "uVar10 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar10 = *(uint *)(iVar16 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) ))))) ;) })) (if_statement "if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" if (parenthesized_expression "((uVar10 & 0x2000) != 0)" ( (binary_expression "(uVar10 & 0x2000) != 0" (parenthesized_expression "(uVar10 & 0x2000)" ( (binary_expression "uVar10 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" { (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))) ;) })) (expression_statement "iVar25 = iVar16 + 0xac;" (assignment_expression "iVar25 = iVar16 + 0xac" identifier = (binary_expression "iVar16 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier )))) ;) (expression_statement "uVar22 = 0x191e;" (assignment_expression "uVar22 = 0x191e" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_0001cf0c;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" ( (binary_expression "pppppppiVar23 == (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 "ppppppiVar4 = *(int *******)(iVar16 + 0x14);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0x14)" identifier = (pointer_expression "*(int *******)(iVar16 + 0x14)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" identifier = (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ])) ;) (expression_statement "uVar29 = uVar29 & 2;" (assignment_expression "uVar29 = uVar29 & 2" identifier = (binary_expression "uVar29 & 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 "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 *)(pcVar30 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014)" identifier = (cast_expression "(int *******)(*(int *)(pcVar30 + 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 *)(pcVar30 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (uVar29 == 0) goto LAB_0001cd7c;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001cd9c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 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 **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" ( (pointer_expression "**(code **)(pcVar30 + 0x22744)" * (pointer_expression "*(code **)(pcVar30 + 0x22744)" * (cast_expression "(code **)(pcVar30 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22744)" ( (binary_expression "pcVar30 + 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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" statement_identifier : (expression_statement "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4 + 0x3f)" * (cast_expression "(char *)(ppppppiVar4 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4 + 0x3f)" ( (binary_expression "ppppppiVar4 + 0x3f" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;" (assignment_expression "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13" (pointer_expression "*(char *)(iVar16 + 0xe3)" * (cast_expression "(char *)(iVar16 + 0xe3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];" statement_identifier : (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;)) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" { (expression_statement "pppppiVar12 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" identifier = (subscript_expression "ppppppiVar4[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    uVar22 = 0x1929;" statement_identifier : (expression_statement "uVar22 = 0x1929;" (assignment_expression "uVar22 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar22 = 0x1948;" statement_identifier : (expression_statement "uVar22 = 0x1948;" (assignment_expression "uVar22 = 0x1948" identifier = number_literal) ;)) }) while (parenthesized_expression "(*(int *)(iVar16 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar16 + 0x10) != 0" (pointer_expression "*(int *)(iVar16 + 0x10)" * (cast_expression "(int *)(iVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) })) (labeled_statement "LAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);" statement_identifier : (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" if (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);" do (compound_statement "{\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    }" { (expression_statement "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" ( (pointer_expression "**(code **)(pcVar30 + 0x22744)" * (pointer_expression "*(code **)(pcVar30 + 0x22744)" * (cast_expression "(code **)(pcVar30 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22744)" ( (binary_expression "pcVar30 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar4[0x29],2)" ( (subscript_expression "ppppppiVar4[0x29]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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 "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar4 = (int ******)0x0;" (assignment_expression "ppppppiVar4 = (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 ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" if (parenthesized_expression "((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0))" ( (binary_expression "(uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" ( (comma_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) , (binary_expression "ppppppiVar4 != (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      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" { (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (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 (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);" do (compound_statement "{\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      }" { (while_statement "while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')" ( (comma_expression "pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) , (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" identifier [ number_literal ]))) ;) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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 "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" identifier = (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar25)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" { (expression_statement "uVar22 = 0x195e;" (assignment_expression "uVar22 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" identifier = (call_expression "(**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" (parenthesized_expression "(**(code **)(pcVar30 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar30 + 0x2277c)" * (pointer_expression "*(code **)(pcVar30 + 0x2277c)" * (cast_expression "(code **)(pcVar30 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2277c)" ( (binary_expression "pcVar30 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar4[0x16],0)" ( (subscript_expression "ppppppiVar4[0x16]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0001cf30;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar25)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" { (expression_statement "uVar22 = 0x1961;" (assignment_expression "uVar22 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(undefined1 *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" ( (binary_expression "ppppppiVar4 != (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  iVar2 = (*pcVar31)(iVar25);" statement_identifier : (expression_statement "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" identifier = (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar25)" ( identifier )))) ;)) (if_statement "if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }" { (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" if (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" ( (binary_expression "pppppppiVar23 != (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 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" { (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" * (cast_expression "(undefined1 *)(iVar16 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xe3)" ( (binary_expression "iVar16 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))) ;) })) (do_statement "do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);" do (compound_statement "{\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    }" { (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" { (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" if (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" ( (binary_expression "ppppppiVar4 == (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          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" { (expression_statement "iVar16 = FUN_0001ab80(iVar16);" (assignment_expression "iVar16 = FUN_0001ab80(iVar16)" identifier = (call_expression "FUN_0001ab80(iVar16)" identifier (argument_list "(iVar16)" ( identifier )))) ;) (return_statement "return iVar16;" return identifier ;) })) (if_statement "if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" if (parenthesized_expression "(((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))" ( (binary_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar16 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar16 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar16 + 0xf8)" * (cast_expression "(uint *)(iVar16 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xf8)" ( (binary_expression "iVar16 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" ( (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "pppppppiVar13 = (int *******)ppppppiVar4[6];" (assignment_expression "pppppppiVar13 = (int *******)ppppppiVar4[6]" identifier = (cast_expression "(int *******)ppppppiVar4[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 "ppppppiVar4[6]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppiVar13[0x3e] & 4) == 0)" ( (binary_expression "((uint)pppppppiVar13[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar13[0x3e] & 4)" ( (binary_expression "(uint)pppppppiVar13[0x3e] & 4" (cast_expression "(uint)pppppppiVar13[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar13[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000140b4(ppppppiVar4);" (call_expression "FUN_000140b4(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar16 + 0xc)" * (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar23 = pppppppiVar13 + 0x2b;" (assignment_expression "pppppppiVar23 = pppppppiVar13 + 0x2b" identifier = (binary_expression "pppppppiVar13 + 0x2b" identifier + number_literal)) ;) (expression_statement "FUN_00014148(ppppppiVar4,3);" (call_expression "FUN_00014148(ppppppiVar4,3)" identifier (argument_list "(ppppppiVar4,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" identifier = (call_expression "(**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" ( (pointer_expression "**(code **)(pcVar30 + 0x22884)" * (pointer_expression "*(code **)(pcVar30 + 0x22884)" * (cast_expression "(code **)(pcVar30 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22884)" ( (binary_expression "pcVar30 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar23)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar22 = 0x11ca;" (assignment_expression "uVar22 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppiVar12 = ppppppiVar4[5];" (assignment_expression "pppppiVar12 = ppppppiVar4[5]" identifier = (subscript_expression "ppppppiVar4[5]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[4];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[4]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[4]" identifier [ number_literal ]))) ;) (if_statement "if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" if (parenthesized_expression "((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c])" ( (binary_expression "(int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]" (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[0x26]" identifier [ number_literal ])) == (subscript_expression "pppppppiVar13[0x3c]" identifier [ number_literal ])) )) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xc] = ppppppiVar9;\n        }" { (expression_statement "pppppppiVar13[0xc] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xc] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" identifier = (subscript_expression "ppppppiVar4[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 "pppppppiVar13[0xd] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xd] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xd]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];" statement_identifier : (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;)) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[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        pppppppiVar13[2] = ppppppiVar9;" statement_identifier : (expression_statement "pppppppiVar13[2] = ppppppiVar9;" (assignment_expression "pppppppiVar13[2] = ppppppiVar9" (subscript_expression "pppppppiVar13[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" identifier = (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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        pppppppiVar13[3] = ppppppiVar9;" statement_identifier : (expression_statement "pppppppiVar13[3] = ppppppiVar9;" (assignment_expression "pppppppiVar13[3] = ppppppiVar9" (subscript_expression "pppppppiVar13[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" identifier = (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar9" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;" if (parenthesized_expression "(pppppppiVar13[7] != (int ******)0x0)" ( (binary_expression "pppppppiVar13[7] != (int ******)0x0" (subscript_expression "pppppppiVar13[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        pppppppiVar13[7] = ppppppiVar4;" statement_identifier : (expression_statement "pppppppiVar13[7] = ppppppiVar4;" (assignment_expression "pppppppiVar13[7] = ppppppiVar4" (subscript_expression "pppppppiVar13[7]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" else (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xe] = ppppppiVar9;\n        }" { (expression_statement "pppppppiVar13[0xe] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xe] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xe]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" identifier = (subscript_expression "ppppppiVar4[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\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 ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[5]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (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 "pppppppiVar13[0xf] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xf] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" identifier = (subscript_expression "ppppppiVar4[3]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" identifier = (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" identifier = (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[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 ****)ppppppiVar9;" statement_identifier : (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar9" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" identifier = (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar9" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;" if (parenthesized_expression "(pppppppiVar13[7] == (int ******)0x0)" ( (binary_expression "pppppppiVar13[7] == (int ******)0x0" (subscript_expression "pppppppiVar13[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        ppppppiVar9[3] = (int *****)ppppppiVar4;" statement_identifier : (expression_statement "ppppppiVar9[3] = (int *****)ppppppiVar4;" (assignment_expression "ppppppiVar9[3] = (int *****)ppppppiVar4" (subscript_expression "ppppppiVar9[3]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar4" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;)) }))) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x22918)" * (cast_expression "(code **)(pcVar30 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22918)" ( (binary_expression "pcVar30 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar13[6] = ppppppiVar4;" (assignment_expression "pppppppiVar13[6] = ppppppiVar4" (subscript_expression "pppppppiVar13[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*pcVar31)(pppppppiVar23);" (assignment_expression "iVar2 = (*pcVar31)(pppppppiVar23)" identifier = (call_expression "(*pcVar31)(pppppppiVar23)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar23)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "uVar22 = 0x11dd;" (assignment_expression "uVar22 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar22 = 0x196b;\n  }" else (compound_statement "{\n    uVar22 = 0x196b;\n  }" { (expression_statement "uVar22 = 0x196b;" (assignment_expression "uVar22 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" identifier = (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 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 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2264c)" ( (binary_expression "pcVar30 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x22644)" ( (binary_expression "pcVar30 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar30 + 0x22638)" * (cast_expression "(int *)(pcVar30 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x22638)" ( (binary_expression "pcVar30 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }" statement_identifier : (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,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(iVar16,unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);" statement_identifier : (expression_statement "FUN_00020df0(iVar16,unaff_s7);" (call_expression "FUN_00020df0(iVar16,unaff_s7)" identifier (argument_list "(iVar16,unaff_s7)" ( identifier , identifier ))) ;)) }))) (expression_statement "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" ( (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" { (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);" statement_identifier : (expression_statement "FUN_00014600(ppppppiVar4);" (call_expression "FUN_00014600(ppppppiVar4)" identifier (argument_list "(ppppppiVar4)" ( identifier ))) ;)) })) (goto_statement "goto LAB_0001cb4c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 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 (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 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 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 * 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 = (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 * (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) ))) ;) (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 * (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 )))) ;) (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 * (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) )))) , (binary_expression IDENT + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) })) (return_statement return IDENT ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator *))))))))) ) 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 IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 IDENT + 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 = 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 { (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) ;) }) (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 = (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 ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 * (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 ;)) (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 ]) ))) ;) (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 ;)) }))))) (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 ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (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 ( (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 ;)) }))) (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 = (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 { (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) ;) (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)) )) (compound_statement { (expression_statement (assignment_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)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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 * (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 ;)) (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 *)))))))) ) (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 ;)) (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 = (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)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) ))))) ;) }) 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 ]) = 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 ]) = (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 ]) = (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 MHD_resume_connection(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }\n  goto LAB_0001cb4c;\n}" (primitive_type "int") (function_declarator "MHD_resume_connection(int param_1)" (identifier "MHD_resume_connection") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  int ******ppppppiVar4;\n  undefined4 uVar5;\n  int *******pppppppiVar6;\n  int *******pppppppiVar7;\n  undefined4 *puVar8;\n  int ******ppppppiVar9;\n  uint uVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int *******pppppppiVar13;\n  int *******pppppppiVar14;\n  int *******pppppppiVar15;\n  int iVar16;\n  int *******pppppppiVar17;\n  int *****pppppiVar18;\n  int unaff_s1;\n  int ******ppppppiVar19;\n  undefined4 *puVar20;\n  int unaff_s2;\n  int *******pppppppiVar21;\n  undefined4 uVar22;\n  int *******pppppppiVar23;\n  int *******pppppppiVar24;\n  int iVar25;\n  int ******ppppppiVar26;\n  int ****ppppiVar27;\n  uint uVar28;\n  int *******unaff_s6;\n  uint uVar29;\n  int *******unaff_s7;\n  code *pcVar30;\n  code *pcVar31;\n  undefined1 auStack_3e0 [12];\n  int iStack_3d4;\n  int *******pppppppiStack_3d0;\n  int ******ppppppiStack_3cc;\n  int *******pppppppiStack_3c8;\n  undefined4 uStack_3c4;\n  int *******pppppppiStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  int *******pppppppiStack_3b4;\n  int *******pppppppiStack_3b0;\n  code *pcStack_3ac;\n  int *******local_398;\n  undefined4 local_394;\n  code *local_390;\n  int *local_384;\n  int *******local_380;\n  int *******local_37c;\n  int local_378;\n  int ******local_374;\n  int *******local_370;\n  undefined4 local_36c;\n  int ******local_368;\n  undefined4 local_364;\n  int ******local_35c;\n  undefined4 local_358;\n  int ******local_354 [32];\n  int ******local_2d4 [32];\n  int ******local_254 [32];\n  int ******local_1d4 [32];\n  int ******local_154 [32];\n  int ******local_d4 [32];\n  int ******local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  \n  iVar16 = *(int *)(param_1 + 0x18);\n  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;\n  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);\n  pcVar30 = *(code **)PTR_DAT_0003f070;\n  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);\n  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);\n  local_390 = pcVar30 + 0x2b48c;\n  local_384 = *(int **)(pcVar30 + 0x23748);\n  ppppppiVar26 = (int ******)&local_35c;\n  uVar22 = 0x8000001f;\n  ppppppiVar19 = pppppppiVar11[6];\n  local_54 = (int ******)*local_384;\n  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);\n  local_50 = iVar16;\n  local_4c = param_1;\n  local_48 = unaff_s2;\n  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar4;\n  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);\n  pppppppiVar23 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);\n  if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar19[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar4 = pppppppiVar11[0x2e];\n  pppppppiVar23 = (int *******)0x0;\n  if ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  local_370 = (int *******)0x0;\nLAB_0001bc90:\n  local_36c = 0;\n  pppppppiVar14 = (int *******)&local_370;\n  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n  local_35c = pppppppiVar11[0x29];\n  local_358 = 0;\n  if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }\n  local_358 = 0x60000;\nLAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }\n  pppppppiVar13 = (int *******)0x1;\n  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);\n  if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }\n  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);\n  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);\n  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);\n  iVar16 = FUN_0001868c(pppppppiVar11);\n  if (iVar16 == 0) goto LAB_0001bcc4;\n  ppppppiVar9 = pppppppiVar11[0x2d];\n  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar30 = *(code **)(local_390 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar30)(pppppppiVar11);\nLAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }\n  pcVar30 = *(code **)(local_390 + -0x7d78);\n  pcVar31 = FUN_0001c688;\n  ppppppiVar4 = local_54;\n  (*pcVar30)();\n  piVar3 = *(int **)(pcVar30 + 0x22c64);\n  iStack_3d4 = *piVar3;\n  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;\n  pppppppiStack_3d0 = pppppppiVar17;\n  ppppppiStack_3cc = ppppppiVar19;\n  pppppppiStack_3c8 = pppppppiVar21;\n  uStack_3c4 = uVar22;\n  pppppppiStack_3c0 = pppppppiVar24;\n  ppppppiStack_3bc = ppppppiVar26;\n  pppppppiStack_3b8 = unaff_s6;\n  pppppppiStack_3b4 = unaff_s7;\n  pppppppiStack_3b0 = pppppppiVar11;\n  pcStack_3ac = pcVar31;\n  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar4[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }\n  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  if (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar4);\n  if (iStack_3d4 == *piVar3) {\n    return 1;\n  }\n  pcVar30 = *(code **)(pcVar30 + 0x22c30);\n  iVar16 = iStack_3d4;\n  (*pcVar30)();\n  uVar29 = *(uint *)(iVar16 + 0xf8);\n  uVar28 = uVar29 & 4;\n  pppppppiVar23 = (int *******)(uVar29 & 0x8000);\n  uVar10 = uVar29;\n  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }\n  if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }\n  iVar25 = iVar16 + 0xac;\n  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n  uVar22 = 0x191e;\n  if (iVar2 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar4 = *(int *******)(iVar16 + 0x14);\n  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar4[0x38];\n  uVar29 = uVar29 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar13 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;\n  if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;\n  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;\nLAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];\n  if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n  pcVar31 = *(code **)(pcVar30 + 0x22918);\n  if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar2 = (*pcVar31)(iVar25);\n  if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }\n  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n  if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\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 "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int ******ppppppiVar4;" (primitive_type "int") (pointer_declarator "******ppppppiVar4" (* "*") (pointer_declarator "*****ppppppiVar4" (* "*") (pointer_declarator "****ppppppiVar4" (* "*") (pointer_declarator "***ppppppiVar4" (* "*") (pointer_declarator "**ppppppiVar4" (* "*") (pointer_declarator "*ppppppiVar4" (* "*") (identifier "ppppppiVar4"))))))) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int *******pppppppiVar6;" (primitive_type "int") (pointer_declarator "*******pppppppiVar6" (* "*") (pointer_declarator "******pppppppiVar6" (* "*") (pointer_declarator "*****pppppppiVar6" (* "*") (pointer_declarator "****pppppppiVar6" (* "*") (pointer_declarator "***pppppppiVar6" (* "*") (pointer_declarator "**pppppppiVar6" (* "*") (pointer_declarator "*pppppppiVar6" (* "*") (identifier "pppppppiVar6")))))))) (; ";")) (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 "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int ******ppppppiVar9;" (primitive_type "int") (pointer_declarator "******ppppppiVar9" (* "*") (pointer_declarator "*****ppppppiVar9" (* "*") (pointer_declarator "****ppppppiVar9" (* "*") (pointer_declarator "***ppppppiVar9" (* "*") (pointer_declarator "**ppppppiVar9" (* "*") (pointer_declarator "*ppppppiVar9" (* "*") (identifier "ppppppiVar9"))))))) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (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 *******pppppppiVar13;" (primitive_type "int") (pointer_declarator "*******pppppppiVar13" (* "*") (pointer_declarator "******pppppppiVar13" (* "*") (pointer_declarator "*****pppppppiVar13" (* "*") (pointer_declarator "****pppppppiVar13" (* "*") (pointer_declarator "***pppppppiVar13" (* "*") (pointer_declarator "**pppppppiVar13" (* "*") (pointer_declarator "*pppppppiVar13" (* "*") (identifier "pppppppiVar13")))))))) (; ";")) (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 "int *******pppppppiVar15;" (primitive_type "int") (pointer_declarator "*******pppppppiVar15" (* "*") (pointer_declarator "******pppppppiVar15" (* "*") (pointer_declarator "*****pppppppiVar15" (* "*") (pointer_declarator "****pppppppiVar15" (* "*") (pointer_declarator "***pppppppiVar15" (* "*") (pointer_declarator "**pppppppiVar15" (* "*") (pointer_declarator "*pppppppiVar15" (* "*") (identifier "pppppppiVar15")))))))) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (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 *****pppppiVar18;" (primitive_type "int") (pointer_declarator "*****pppppiVar18" (* "*") (pointer_declarator "****pppppiVar18" (* "*") (pointer_declarator "***pppppiVar18" (* "*") (pointer_declarator "**pppppiVar18" (* "*") (pointer_declarator "*pppppiVar18" (* "*") (identifier "pppppiVar18")))))) (; ";")) (declaration "int unaff_s1;" (primitive_type "int") (identifier "unaff_s1") (; ";")) (declaration "int ******ppppppiVar19;" (primitive_type "int") (pointer_declarator "******ppppppiVar19" (* "*") (pointer_declarator "*****ppppppiVar19" (* "*") (pointer_declarator "****ppppppiVar19" (* "*") (pointer_declarator "***ppppppiVar19" (* "*") (pointer_declarator "**ppppppiVar19" (* "*") (pointer_declarator "*ppppppiVar19" (* "*") (identifier "ppppppiVar19"))))))) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int unaff_s2;" (primitive_type "int") (identifier "unaff_s2") (; ";")) (declaration "int *******pppppppiVar21;" (primitive_type "int") (pointer_declarator "*******pppppppiVar21" (* "*") (pointer_declarator "******pppppppiVar21" (* "*") (pointer_declarator "*****pppppppiVar21" (* "*") (pointer_declarator "****pppppppiVar21" (* "*") (pointer_declarator "***pppppppiVar21" (* "*") (pointer_declarator "**pppppppiVar21" (* "*") (pointer_declarator "*pppppppiVar21" (* "*") (identifier "pppppppiVar21")))))))) (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "int *******pppppppiVar23;" (primitive_type "int") (pointer_declarator "*******pppppppiVar23" (* "*") (pointer_declarator "******pppppppiVar23" (* "*") (pointer_declarator "*****pppppppiVar23" (* "*") (pointer_declarator "****pppppppiVar23" (* "*") (pointer_declarator "***pppppppiVar23" (* "*") (pointer_declarator "**pppppppiVar23" (* "*") (pointer_declarator "*pppppppiVar23" (* "*") (identifier "pppppppiVar23")))))))) (; ";")) (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 iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int ******ppppppiVar26;" (primitive_type "int") (pointer_declarator "******ppppppiVar26" (* "*") (pointer_declarator "*****ppppppiVar26" (* "*") (pointer_declarator "****ppppppiVar26" (* "*") (pointer_declarator "***ppppppiVar26" (* "*") (pointer_declarator "**ppppppiVar26" (* "*") (pointer_declarator "*ppppppiVar26" (* "*") (identifier "ppppppiVar26"))))))) (; ";")) (declaration "int ****ppppiVar27;" (primitive_type "int") (pointer_declarator "****ppppiVar27" (* "*") (pointer_declarator "***ppppiVar27" (* "*") (pointer_declarator "**ppppiVar27" (* "*") (pointer_declarator "*ppppiVar27" (* "*") (identifier "ppppiVar27"))))) (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (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 uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (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 *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "code *pcVar31;" (type_identifier "code") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "undefined1 auStack_3e0 [12];" (type_identifier "undefined1") (array_declarator "auStack_3e0 [12]" (identifier "auStack_3e0") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int iStack_3d4;" (primitive_type "int") (identifier "iStack_3d4") (; ";")) (declaration "int *******pppppppiStack_3d0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3d0" (* "*") (pointer_declarator "******pppppppiStack_3d0" (* "*") (pointer_declarator "*****pppppppiStack_3d0" (* "*") (pointer_declarator "****pppppppiStack_3d0" (* "*") (pointer_declarator "***pppppppiStack_3d0" (* "*") (pointer_declarator "**pppppppiStack_3d0" (* "*") (pointer_declarator "*pppppppiStack_3d0" (* "*") (identifier "pppppppiStack_3d0")))))))) (; ";")) (declaration "int ******ppppppiStack_3cc;" (primitive_type "int") (pointer_declarator "******ppppppiStack_3cc" (* "*") (pointer_declarator "*****ppppppiStack_3cc" (* "*") (pointer_declarator "****ppppppiStack_3cc" (* "*") (pointer_declarator "***ppppppiStack_3cc" (* "*") (pointer_declarator "**ppppppiStack_3cc" (* "*") (pointer_declarator "*ppppppiStack_3cc" (* "*") (identifier "ppppppiStack_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 "undefined4 uStack_3c4;" (type_identifier "undefined4") (identifier "uStack_3c4") (; ";")) (declaration "int *******pppppppiStack_3c0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3c0" (* "*") (pointer_declarator "******pppppppiStack_3c0" (* "*") (pointer_declarator "*****pppppppiStack_3c0" (* "*") (pointer_declarator "****pppppppiStack_3c0" (* "*") (pointer_declarator "***pppppppiStack_3c0" (* "*") (pointer_declarator "**pppppppiStack_3c0" (* "*") (pointer_declarator "*pppppppiStack_3c0" (* "*") (identifier "pppppppiStack_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 "int *******pppppppiStack_3b4;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3b4" (* "*") (pointer_declarator "******pppppppiStack_3b4" (* "*") (pointer_declarator "*****pppppppiStack_3b4" (* "*") (pointer_declarator "****pppppppiStack_3b4" (* "*") (pointer_declarator "***pppppppiStack_3b4" (* "*") (pointer_declarator "**pppppppiStack_3b4" (* "*") (pointer_declarator "*pppppppiStack_3b4" (* "*") (identifier "pppppppiStack_3b4")))))))) (; ";")) (declaration "int *******pppppppiStack_3b0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3b0" (* "*") (pointer_declarator "******pppppppiStack_3b0" (* "*") (pointer_declarator "*****pppppppiStack_3b0" (* "*") (pointer_declarator "****pppppppiStack_3b0" (* "*") (pointer_declarator "***pppppppiStack_3b0" (* "*") (pointer_declarator "**pppppppiStack_3b0" (* "*") (pointer_declarator "*pppppppiStack_3b0" (* "*") (identifier "pppppppiStack_3b0")))))))) (; ";")) (declaration "code *pcStack_3ac;" (type_identifier "code") (pointer_declarator "*pcStack_3ac" (* "*") (identifier "pcStack_3ac")) (; ";")) (declaration "int *******local_398;" (primitive_type "int") (pointer_declarator "*******local_398" (* "*") (pointer_declarator "******local_398" (* "*") (pointer_declarator "*****local_398" (* "*") (pointer_declarator "****local_398" (* "*") (pointer_declarator "***local_398" (* "*") (pointer_declarator "**local_398" (* "*") (pointer_declarator "*local_398" (* "*") (identifier "local_398")))))))) (; ";")) (declaration "undefined4 local_394;" (type_identifier "undefined4") (identifier "local_394") (; ";")) (declaration "code *local_390;" (type_identifier "code") (pointer_declarator "*local_390" (* "*") (identifier "local_390")) (; ";")) (declaration "int *local_384;" (primitive_type "int") (pointer_declarator "*local_384" (* "*") (identifier "local_384")) (; ";")) (declaration "int *******local_380;" (primitive_type "int") (pointer_declarator "*******local_380" (* "*") (pointer_declarator "******local_380" (* "*") (pointer_declarator "*****local_380" (* "*") (pointer_declarator "****local_380" (* "*") (pointer_declarator "***local_380" (* "*") (pointer_declarator "**local_380" (* "*") (pointer_declarator "*local_380" (* "*") (identifier "local_380")))))))) (; ";")) (declaration "int *******local_37c;" (primitive_type "int") (pointer_declarator "*******local_37c" (* "*") (pointer_declarator "******local_37c" (* "*") (pointer_declarator "*****local_37c" (* "*") (pointer_declarator "****local_37c" (* "*") (pointer_declarator "***local_37c" (* "*") (pointer_declarator "**local_37c" (* "*") (pointer_declarator "*local_37c" (* "*") (identifier "local_37c")))))))) (; ";")) (declaration "int local_378;" (primitive_type "int") (identifier "local_378") (; ";")) (declaration "int ******local_374;" (primitive_type "int") (pointer_declarator "******local_374" (* "*") (pointer_declarator "*****local_374" (* "*") (pointer_declarator "****local_374" (* "*") (pointer_declarator "***local_374" (* "*") (pointer_declarator "**local_374" (* "*") (pointer_declarator "*local_374" (* "*") (identifier "local_374"))))))) (; ";")) (declaration "int *******local_370;" (primitive_type "int") (pointer_declarator "*******local_370" (* "*") (pointer_declarator "******local_370" (* "*") (pointer_declarator "*****local_370" (* "*") (pointer_declarator "****local_370" (* "*") (pointer_declarator "***local_370" (* "*") (pointer_declarator "**local_370" (* "*") (pointer_declarator "*local_370" (* "*") (identifier "local_370")))))))) (; ";")) (declaration "undefined4 local_36c;" (type_identifier "undefined4") (identifier "local_36c") (; ";")) (declaration "int ******local_368;" (primitive_type "int") (pointer_declarator "******local_368" (* "*") (pointer_declarator "*****local_368" (* "*") (pointer_declarator "****local_368" (* "*") (pointer_declarator "***local_368" (* "*") (pointer_declarator "**local_368" (* "*") (pointer_declarator "*local_368" (* "*") (identifier "local_368"))))))) (; ";")) (declaration "undefined4 local_364;" (type_identifier "undefined4") (identifier "local_364") (; ";")) (declaration "int ******local_35c;" (primitive_type "int") (pointer_declarator "******local_35c" (* "*") (pointer_declarator "*****local_35c" (* "*") (pointer_declarator "****local_35c" (* "*") (pointer_declarator "***local_35c" (* "*") (pointer_declarator "**local_35c" (* "*") (pointer_declarator "*local_35c" (* "*") (identifier "local_35c"))))))) (; ";")) (declaration "undefined4 local_358;" (type_identifier "undefined4") (identifier "local_358") (; ";")) (declaration "int ******local_354 [32];" (primitive_type "int") (pointer_declarator "******local_354 [32]" (* "*") (pointer_declarator "*****local_354 [32]" (* "*") (pointer_declarator "****local_354 [32]" (* "*") (pointer_declarator "***local_354 [32]" (* "*") (pointer_declarator "**local_354 [32]" (* "*") (pointer_declarator "*local_354 [32]" (* "*") (array_declarator "local_354 [32]" (identifier "local_354") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_2d4 [32];" (primitive_type "int") (pointer_declarator "******local_2d4 [32]" (* "*") (pointer_declarator "*****local_2d4 [32]" (* "*") (pointer_declarator "****local_2d4 [32]" (* "*") (pointer_declarator "***local_2d4 [32]" (* "*") (pointer_declarator "**local_2d4 [32]" (* "*") (pointer_declarator "*local_2d4 [32]" (* "*") (array_declarator "local_2d4 [32]" (identifier "local_2d4") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_254 [32];" (primitive_type "int") (pointer_declarator "******local_254 [32]" (* "*") (pointer_declarator "*****local_254 [32]" (* "*") (pointer_declarator "****local_254 [32]" (* "*") (pointer_declarator "***local_254 [32]" (* "*") (pointer_declarator "**local_254 [32]" (* "*") (pointer_declarator "*local_254 [32]" (* "*") (array_declarator "local_254 [32]" (identifier "local_254") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_1d4 [32];" (primitive_type "int") (pointer_declarator "******local_1d4 [32]" (* "*") (pointer_declarator "*****local_1d4 [32]" (* "*") (pointer_declarator "****local_1d4 [32]" (* "*") (pointer_declarator "***local_1d4 [32]" (* "*") (pointer_declarator "**local_1d4 [32]" (* "*") (pointer_declarator "*local_1d4 [32]" (* "*") (array_declarator "local_1d4 [32]" (identifier "local_1d4") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_154 [32];" (primitive_type "int") (pointer_declarator "******local_154 [32]" (* "*") (pointer_declarator "*****local_154 [32]" (* "*") (pointer_declarator "****local_154 [32]" (* "*") (pointer_declarator "***local_154 [32]" (* "*") (pointer_declarator "**local_154 [32]" (* "*") (pointer_declarator "*local_154 [32]" (* "*") (array_declarator "local_154 [32]" (identifier "local_154") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_d4 [32];" (primitive_type "int") (pointer_declarator "******local_d4 [32]" (* "*") (pointer_declarator "*****local_d4 [32]" (* "*") (pointer_declarator "****local_d4 [32]" (* "*") (pointer_declarator "***local_d4 [32]" (* "*") (pointer_declarator "**local_d4 [32]" (* "*") (pointer_declarator "*local_d4 [32]" (* "*") (array_declarator "local_d4 [32]" (identifier "local_d4") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******local_54;" (primitive_type "int") (pointer_declarator "******local_54" (* "*") (pointer_declarator "*****local_54" (* "*") (pointer_declarator "****local_54" (* "*") (pointer_declarator "***local_54" (* "*") (pointer_declarator "**local_54" (* "*") (pointer_declarator "*local_54" (* "*") (identifier "local_54"))))))) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (expression_statement "iVar16 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar16 = *(int *)(param_1 + 0x18)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }\n  else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 0x2000)" (( "(") (binary_expression "*(uint *)(iVar16 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar16 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar16 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xf8)" (( "(") (binary_expression "iVar16 + 0xf8" (identifier "iVar16") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);\n    param_1 = unaff_s1;\n  }" ({ "{") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" (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,0xaff,\n               PTR_DAT_0003f05c + -0x3514)" (( "(") (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 "0xaff") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3514" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3514")) () ")"))) (; ";")) (expression_statement "param_1 = unaff_s1;" (assignment_expression "param_1 = unaff_s1" (identifier "param_1") (= "=") (identifier "unaff_s1")) (; ";")) (} "}")) (else_clause "else {\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s2 = iVar16 + 0xac;\n    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    if (iVar2 != 0) goto LAB_0001bb7c;\n    *(undefined1 *)(param_1 + 0xfc) = 1;\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    iVar2 = (*(code *)puVar1)(unaff_s2);\n    if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }\n  }" ({ "{") (expression_statement "unaff_s2 = iVar16 + 0xac;" (assignment_expression "unaff_s2 = iVar16 + 0xac" (identifier "unaff_s2") (= "=") (binary_expression "iVar16 + 0xac" (identifier "iVar16") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2)" (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 "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (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) goto LAB_0001bb7c;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bb7c;" (goto "goto") (statement_identifier "LAB_0001bb7c") (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xfc)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xfc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar16 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe3)" (( "(") (binary_expression "iVar16 + 0xe3" (identifier "iVar16") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar2 = (*(code *)puVar1)(unaff_s2);" (assignment_expression "iVar2 = (*(code *)puVar1)(unaff_s2)" (identifier "iVar2") (= "=") (call_expression "(*(code *)puVar1)(unaff_s2)" (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 "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }\n      return iVar2;\n    }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1))" (( "(") (binary_expression "(*(int *)(iVar16 + 0xdc) != -1) &&\n         (iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar16 + 0xdc) != -1)" (( "(") (binary_expression "*(int *)(iVar16 + 0xdc) != -1" (pointer_expression "*(int *)(iVar16 + 0xdc)" (* "*") (cast_expression "(int *)(iVar16 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xdc)" (( "(") (binary_expression "iVar16 + 0xdc" (identifier "iVar16") (+ "+") (number_literal "0xdc")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1" (assignment_expression "iVar2 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" (( "(") (pointer_expression "*(code *)PTR_write_0003f220" (* "*") (cast_expression "(code *)PTR_write_0003f220" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_0003f220"))) () ")")) (argument_list "(*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (( "(") (pointer_expression "*(int *)(iVar16 + 0xdc)" (* "*") (cast_expression "(int *)(iVar16 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xdc)" (( "(") (binary_expression "iVar16 + 0xdc" (identifier "iVar16") (+ "+") (number_literal "0xdc")) () ")")))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x28d8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x28d8")) (, ",") (number_literal "8") () ")")))) (, ",") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        iVar2 = *piVar3;\n        if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }\n      }" ({ "{") (expression_statement "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" (identifier "iVar2") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (iVar2 != 0xb) {\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0xb)" (( "(") (binary_expression "iVar2 != 0xb" (identifier "iVar2") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);\n          return iVar16;\n        }" ({ "{") (expression_statement "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);" (assignment_expression "iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" (identifier "iVar16") (= "=") (call_expression "FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc)" (identifier "FUN_00020df0") (argument_list "(iVar16,PTR_DAT_0003f05c + -0x34cc)" (( "(") (identifier "iVar16") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x34cc" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x34cc")) () ")")))) (; ";")) (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\n             PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,\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,0xb06,\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")) (, ",") (number_literal "0xb06") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51b8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";")) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" (statement_identifier "LAB_0001bb7c") (: ":") (expression_statement "pppppppiVar11 = *(int ********)PTR_DAT_0003f068;" (assignment_expression "pppppppiVar11 = *(int ********)PTR_DAT_0003f068" (identifier "pppppppiVar11") (= "=") (pointer_expression "*(int ********)PTR_DAT_0003f068" (* "*") (cast_expression "(int ********)PTR_DAT_0003f068" (( "(") (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 "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "PTR_DAT_0003f068")))) (; ";"))) (expression_statement "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);" (assignment_expression "pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x51e0)" (( "(") (binary_expression "PTR_DAT_0003f05c + -0x51e0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51e0")) () ")")))) (; ";")) (expression_statement "pcVar30 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar30 = *(code **)PTR_DAT_0003f070" (identifier "pcVar30") (= "=") (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 "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);" (assignment_expression "pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(PTR_DAT_0003f05c + -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 "(PTR_DAT_0003f05c + -0x40a0)" (( "(") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) () ")")))) (; ";")) (expression_statement "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);" (call_expression "(*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01)" (parenthesized_expression "(*pcVar30)" (( "(") (pointer_expression "*pcVar30" (* "*") (identifier "pcVar30")) () ")")) (argument_list "(pppppppiVar11,pppppppiVar13,0xb01)" (( "(") (identifier "pppppppiVar11") (, ",") (identifier "pppppppiVar13") (, ",") (number_literal "0xb01") () ")"))) (; ";")) (expression_statement "local_390 = pcVar30 + 0x2b48c;" (assignment_expression "local_390 = pcVar30 + 0x2b48c" (identifier "local_390") (= "=") (binary_expression "pcVar30 + 0x2b48c" (identifier "pcVar30") (+ "+") (number_literal "0x2b48c"))) (; ";")) (expression_statement "local_384 = *(int **)(pcVar30 + 0x23748);" (assignment_expression "local_384 = *(int **)(pcVar30 + 0x23748)" (identifier "local_384") (= "=") (pointer_expression "*(int **)(pcVar30 + 0x23748)" (* "*") (cast_expression "(int **)(pcVar30 + 0x23748)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x23748)" (( "(") (binary_expression "pcVar30 + 0x23748" (identifier "pcVar30") (+ "+") (number_literal "0x23748")) () ")"))))) (; ";")) (expression_statement "ppppppiVar26 = (int ******)&local_35c;" (assignment_expression "ppppppiVar26 = (int ******)&local_35c" (identifier "ppppppiVar26") (= "=") (cast_expression "(int ******)&local_35c" (( "(") (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 "&local_35c" (& "&") (identifier "local_35c")))) (; ";")) (expression_statement "uVar22 = 0x8000001f;" (assignment_expression "uVar22 = 0x8000001f" (identifier "uVar22") (= "=") (number_literal "0x8000001f")) (; ";")) (expression_statement "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" (identifier "ppppppiVar19") (= "=") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_54 = (int ******)*local_384;" (assignment_expression "local_54 = (int ******)*local_384" (identifier "local_54") (= "=") (cast_expression "(int ******)*local_384" (( "(") (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 "*local_384" (* "*") (identifier "local_384")))) (; ";")) (expression_statement "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);" (assignment_expression "pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40)" (identifier "pppppppiVar21") (= "=") (cast_expression "(int *******)((uint)ppppppiVar19[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)ppppppiVar19[0x3e] & 0x40)" (( "(") (binary_expression "(uint)ppppppiVar19[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar19[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar19[0x3e]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "local_50 = iVar16;" (assignment_expression "local_50 = iVar16" (identifier "local_50") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_48 = unaff_s2;" (assignment_expression "local_48 = unaff_s2" (identifier "local_48") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();" (assignment_expression "ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))()" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)(**(code **)(pcVar30 + 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 **)(pcVar30 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x23740))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x23740)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x23740)" (* "*") (cast_expression "(code **)(pcVar30 + 0x23740)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x23740)" (( "(") (binary_expression "pcVar30 + 0x23740" (identifier "pcVar30") (+ "+") (number_literal "0x23740")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (expression_statement "pppppppiVar11[0x17] = ppppppiVar4;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar4" (subscript_expression "pppppppiVar11[0x17]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "ppppppiVar4")) (; ";")) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974)" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7974)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(local_390 + -0x7fac)" (* "*") (cast_expression "(int *)(local_390 + -0x7fac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fac)" (( "(") (binary_expression "local_390 + -0x7fac" (identifier "local_390") (+ "+") (number_literal "-0x7fac")) () ")")))) (+ "+") (number_literal "-0x7974")) () ")")))) (; ";")) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (int *******)0x0" (identifier "pppppppiVar23") (= "=") (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  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" (statement_identifier "LAB_0001bc2c") (: ":") (expression_statement "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);" (assignment_expression "pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38)" (identifier "pppppppiVar17") (= "=") (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar19 + 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 *)(ppppppiVar19 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar19 + 0x38)" (( "(") (binary_expression "ppppppiVar19 + 0x38" (identifier "ppppppiVar19") (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (if_statement "if (pppppppiVar17 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" (if "if") (parenthesized_expression "(pppppppiVar17 != (int *******)0x0)" (( "(") (binary_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"))) () ")")) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }\n    pppppppiVar14 = (int *******)0x8;\n    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" ({ "{") (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" (statement_identifier "joined_r0x0001bdcc") (: ":") (if_statement "if (ppppppiVar9 != (int ******)0x13) {\n      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" (if "if") (parenthesized_expression "(ppppppiVar9 != (int ******)0x13)" (( "(") (binary_expression "ppppppiVar9 != (int ******)0x13" (identifier "ppppppiVar9") (!= "!=") (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      pppppppiVar13 = (int *******)0x3;\n      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)0x3;" (assignment_expression "pppppppiVar13 = (int *******)0x3" (identifier "pppppppiVar13") (= "=") (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 *)(ppppppiVar19 + 0x38) == '\0') {\n        pppppppiVar13 = (int *******)0x1;\n      }" (if "if") (parenthesized_expression "(*(char *)(ppppppiVar19 + 0x38) == '\0')" (( "(") (binary_expression "*(char *)(ppppppiVar19 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar19 + 0x38)" (* "*") (cast_expression "(char *)(ppppppiVar19 + 0x38)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar19 + 0x38)" (( "(") (binary_expression "ppppppiVar19 + 0x38" (identifier "ppppppiVar19") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pppppppiVar13 = (int *******)0x1;\n      }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" (statement_identifier "LAB_0001bcc4") (: ":") (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(local_390 + -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 **)(local_390 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" ({ "{") (expression_statement "(**(code **)(local_390 + -0x7d58))();" (call_expression "(**(code **)(local_390 + -0x7d58))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d58))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d58)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d58)" (* "*") (cast_expression "(code **)(local_390 + -0x7d58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d58)" (( "(") (binary_expression "local_390 + -0x7d58" (identifier "local_390") (+ "+") (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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -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      pppppppiVar13 = (int *******)0x1;\n      (**(code **)(local_390 + -0x7ec8))();\n    }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 **)(local_390 + -0x7ec8))();" (call_expression "(**(code **)(local_390 + -0x7ec8))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ec8))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ec8)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ec8)" (* "*") (cast_expression "(code **)(local_390 + -0x7ec8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ec8)" (( "(") (binary_expression "local_390 + -0x7ec8" (identifier "local_390") (+ "+") (number_literal "-0x7ec8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pppppppiVar14 = (int *******)0x8;" (assignment_expression "pppppppiVar14 = (int *******)0x8" (identifier "pppppppiVar14") (= "=") (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 (ppppppiVar19[0x37] != (int *****)0xffffffff) {\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" (if "if") (parenthesized_expression "(ppppppiVar19[0x37] != (int *****)0xffffffff)" (( "(") (binary_expression "ppppppiVar19[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar19[0x37]" (identifier "ppppppiVar19") ([ "[") (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      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);\n      iVar16 = (**(code **)(local_390 + -0x7e10))();\n      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }\n    }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x28d8)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x28d8")) () ")")))) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7e10))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7e10))()" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7e10))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e10))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e10)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e10)" (* "*") (cast_expression "(code **)(local_390 + -0x7e10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e10)" (( "(") (binary_expression "local_390 + -0x7e10" (identifier "local_390") (+ "+") (number_literal "-0x7e10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" (if "if") (parenthesized_expression "((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb))" (( "(") (binary_expression "(iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" (parenthesized_expression "(iVar16 < 1)" (( "(") (binary_expression "iVar16 < 1" (identifier "iVar16") (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)" (( "(") (comma_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar3 != 0xb" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (!= "!=") (number_literal "0xb"))) () ")"))) () ")")) (compound_statement "{\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar19);\n      }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x341c)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x341c")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" (identifier "FUN_00020df0") (argument_list "(ppppppiVar19)" (( "(") (identifier "ppppppiVar19") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0001bd0c;" (goto "goto") (statement_identifier "LAB_0001bd0c") (; ";")) (} "}"))) (if_statement "if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;" (if "if") (parenthesized_expression "(ppppppiVar9 == (int ******)0x13)" (( "(") (binary_expression "ppppppiVar9 == (int ******)0x13" (identifier "ppppppiVar9") (== "==") (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 *******)ppppppiVar19[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar19[0x3c]" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)ppppppiVar19[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 "ppppppiVar19[0x3c]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x3c") (] "]")))) (; ";")) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = 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    ppppppiVar4 = (int ******)ppppppiVar19[0x37];\n    pppppppiVar23 = unaff_s6;\n    if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar13 = (int *******)0x1;\n    local_358 = 0x10000;\n    local_35c = ppppppiVar4;\n    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);\n    if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" ({ "{") (expression_statement "ppppppiVar4 = (int ******)ppppppiVar19[0x37];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar19[0x37]" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)ppppppiVar19[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 "ppppppiVar19[0x37]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x37") (] "]")))) (; ";")) (expression_statement "pppppppiVar23 = unaff_s6;" (assignment_expression "pppppppiVar23 = unaff_s6" (identifier "pppppppiVar23") (= "=") (identifier "unaff_s6")) (; ";")) (if_statement "if (pppppppiVar21 == (int *******)0x0) {\n      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" (if "if") (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar21 == (int *******)0x0" (identifier "pppppppiVar21") (== "==") (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      local_380 = local_354;\n      pppppppiVar13 = local_380;\n      do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);\n      pppppppiVar15 = (int *******)0x400;\n      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);\n      if (iVar16 == 0) goto LAB_0001c364;\n      pppppppiVar15 = (int *******)0x0;\n      local_398 = (int *******)0x0;\n      pppppppiVar13 = local_380;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);\n      if (-1 < iVar16) goto LAB_0001c380;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar23 = (int *******)pppppppiVar11[6];\n      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n      pppppppiVar17 = pppppppiVar14;\n      pppppppiVar21 = pppppppiVar23;\nLAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" ({ "{") (expression_statement "local_380 = local_354;" (assignment_expression "local_380 = local_354" (identifier "local_380") (= "=") (identifier "local_354")) (; ";")) (expression_statement "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" (identifier "pppppppiVar13") (= "=") (identifier "local_380")) (; ";")) (do_statement "do {\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      } while (pppppppiVar13 != local_2d4);" (do "do") (compound_statement "{\n        *pppppppiVar13 = (int ******)0x0;\n        pppppppiVar13 = pppppppiVar13 + 1;\n      }" ({ "{") (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" (* "*") (identifier "pppppppiVar13")) (= "=") (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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" (identifier "pppppppiVar13") (= "=") (binary_expression "pppppppiVar13 + 1" (identifier "pppppppiVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar13 != local_2d4)" (( "(") (binary_expression "pppppppiVar13 != local_2d4" (identifier "pppppppiVar13") (!= "!=") (identifier "local_2d4")) () ")")) (; ";")) (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (int *******)0x400" (identifier "pppppppiVar15") (= "=") (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 "iVar16 = FUN_00022130(ppppppiVar4,local_380,0);" (assignment_expression "iVar16 = FUN_00022130(ppppppiVar4,local_380,0)" (identifier "iVar16") (= "=") (call_expression "FUN_00022130(ppppppiVar4,local_380,0)" (identifier "FUN_00022130") (argument_list "(ppppppiVar4,local_380,0)" (( "(") (identifier "ppppppiVar4") (, ",") (identifier "local_380") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";"))) (expression_statement "pppppppiVar15 = (int *******)0x0;" (assignment_expression "pppppppiVar15 = (int *******)0x0" (identifier "pppppppiVar15") (= "=") (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 "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (int *******)0x0" (identifier "local_398") (= "=") (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 "pppppppiVar13 = local_380;" (assignment_expression "pppppppiVar13 = local_380" (identifier "pppppppiVar13") (= "=") (identifier "local_380")) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d6c)" (* "*") (cast_expression "(code **)(local_390 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d6c)" (( "(") (binary_expression "local_390 + -0x7d6c" (identifier "local_390") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "((int)ppppppiVar19[0x37] + 1,local_380,0)" (( "(") (binary_expression "(int)ppppppiVar19[0x37] + 1" (cast_expression "(int)ppppppiVar19[0x37]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppiVar19[0x37]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x37") (] "]"))) (+ "+") (number_literal "1")) (, ",") (identifier "local_380") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < iVar16) goto LAB_0001c380;" (if "if") (parenthesized_expression "(-1 < iVar16)" (( "(") (binary_expression "-1 < iVar16" (number_literal "-1") (< "<") (identifier "iVar16")) () ")")) (goto_statement "goto LAB_0001c380;" (goto "goto") (statement_identifier "LAB_0001c380") (; ";"))) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)*puVar8" (( "(") (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 "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (if_statement "if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;" (if "if") (parenthesized_expression "(pppppppiVar14 == (int *******)0x4)" (( "(") (binary_expression "pppppppiVar14 == (int *******)0x4" (identifier "pppppppiVar14") (== "==") (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 "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar23") (= "=") (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" (( "(") (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ddc)" (* "*") (cast_expression "(code **)(local_390 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ddc)" (( "(") (binary_expression "local_390 + -0x7ddc" (identifier "local_390") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar14)" (( "(") (identifier "pppppppiVar14") () ")"))))) (; ";")) (expression_statement "pppppppiVar17 = pppppppiVar14;" (assignment_expression "pppppppiVar17 = pppppppiVar14" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar14")) (; ";")) (expression_statement "pppppppiVar21 = pppppppiVar23;" (assignment_expression "pppppppiVar21 = pppppppiVar23" (identifier "pppppppiVar21") (= "=") (identifier "pppppppiVar23")) (; ";")) (labeled_statement "LAB_0001c18c:\n      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (statement_identifier "LAB_0001c18c") (: ":") (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3470")) () ")")))) (; ";"))) (expression_statement "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);" (call_expression "FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar23,pppppppiVar13,pppppppiVar14)" (( "(") (identifier "pppppppiVar23") (, ",") (identifier "pppppppiVar13") (, ",") (identifier "pppppppiVar14") () ")"))) (; ";")) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0001bdcc;" (goto "goto") (statement_identifier "joined_r0x0001bdcc") (; ";")) (} "}"))) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 "local_358 = 0x10000;" (assignment_expression "local_358 = 0x10000" (identifier "local_358") (= "=") (number_literal "0x10000")) (; ";")) (expression_statement "local_35c = ppppppiVar4;" (assignment_expression "local_35c = ppppppiVar4" (identifier "local_35c") (= "=") (identifier "ppppppiVar4")) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7dac)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7dac)" (* "*") (cast_expression "(code **)(local_390 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7dac)" (( "(") (binary_expression "local_390 + -0x7dac" (identifier "local_390") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(ppppppiVar26,1,0xffffffff)" (( "(") (identifier "ppppppiVar26") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (if_statement "if (iVar16 < 0) {\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n      if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" ({ "{") (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar3 != 4) {\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" (if "if") (parenthesized_expression "(*piVar3 != 4)" (( "(") (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];\n        uVar5 = (**(code **)(local_390 + -0x7ddc))();\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);\n        ppppppiVar9 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" ({ "{") (labeled_statement "LAB_0001bd98:\n        pppppppiVar17 = (int *******)pppppppiVar11[6];" (statement_identifier "LAB_0001bd98") (: ":") (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar17") (= "=") (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 "uVar5 = (**(code **)(local_390 + -0x7ddc))();" (assignment_expression "uVar5 = (**(code **)(local_390 + -0x7ddc))()" (identifier "uVar5") (= "=") (call_expression "(**(code **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ddc)" (* "*") (cast_expression "(code **)(local_390 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ddc)" (( "(") (binary_expression "local_390 + -0x7ddc" (identifier "local_390") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3450")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);" (call_expression "FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar17,pppppppiVar13,uVar5)" (( "(") (identifier "pppppppiVar17") (, ",") (identifier "pppppppiVar13") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (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      ppppppiVar9 = pppppppiVar11[0x2d];" (statement_identifier "LAB_0001c13c") (: ":") (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" (else "else") (compound_statement "{\nLAB_0001c380:\n      pppppppiVar13 = &local_368;\n      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" ({ "{") (labeled_statement "LAB_0001c380:\n      pppppppiVar13 = &local_368;" (statement_identifier "LAB_0001c380") (: ":") (expression_statement "pppppppiVar13 = &local_368;" (assignment_expression "pppppppiVar13 = &local_368" (identifier "pppppppiVar13") (= "=") (pointer_expression "&local_368" (& "&") (identifier "local_368"))) (; ";"))) (expression_statement "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);" (call_expression "(**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8)" (parenthesized_expression "(**(code **)(local_390 + -0x7d18))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d18)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d18)" (* "*") (cast_expression "(code **)(local_390 + -0x7d18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d18)" (( "(") (binary_expression "local_390 + -0x7d18" (identifier "local_390") (+ "+") (number_literal "-0x7d18")) () ")"))))) () ")")) (argument_list "(ppppppiVar19[0x37],pppppppiVar13,8)" (( "(") (subscript_expression "ppppppiVar19[0x37]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x37") (] "]")) (, ",") (identifier "pppppppiVar13") (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001bc2c;" (goto "goto") (statement_identifier "LAB_0001bc2c") (; ";")) (} "}"))) (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" (if "if") (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar23 != (int *******)0x0" (identifier "pppppppiVar23") (!= "!=") (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 "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" (identifier "ppppppiVar4") (= "=") (subscript_expression "pppppppiVar11[0x2e]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2e") (] "]"))) (; ";")) (expression_statement "pppppppiVar23 = (int *******)0x0;" (assignment_expression "pppppppiVar23 = (int *******)0x0" (identifier "pppppppiVar23") (= "=") (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 ((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" (if "if") (parenthesized_expression "((ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))))" (( "(") (binary_expression "(ppppppiVar4 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar4 != (int ******)0x2)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x2" (identifier "ppppppiVar4") (!= "!=") (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' || (ppppppiVar4 != (int ******)0x0)))" (( "(") (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0))" (( "(") (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (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 "(ppppppiVar4 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar14 = (int *******)0x0;\n    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n    unaff_s6 = local_2d4;\n    pppppppiVar6 = local_354;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);\n    unaff_s7 = local_254;\n    pppppppiVar6 = unaff_s6;\n    do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);\n    do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != pppppppiVar7);\n    local_378 = -1;\n    if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }\n    pppppppiVar13 = pppppppiVar6;\n    pppppppiVar15 = unaff_s7;\n    local_398 = pppppppiVar14;\n    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);\n    if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" ({ "{") (if_statement "if (0 < (int)unaff_s7) {\n      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = 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      iVar16 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar4 = pppppppiVar11[0x2e];\n      local_370 = unaff_s7;\n      goto LAB_0001bc90;\n    }" ({ "{") (expression_statement "iVar16 = FUN_0002186c();" (assignment_expression "iVar16 = FUN_0002186c()" (identifier "iVar16") (= "=") (call_expression "FUN_0002186c()" (identifier "FUN_0002186c") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" (if "if") (parenthesized_expression "((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25])" (( "(") (binary_expression "(int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (< "<") (binary_expression "iVar16 - (int)pppppppiVar11[0x25]" (identifier "iVar16") (- "-") (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 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" (else "else") (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));\n      }" ({ "{") (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]))" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)((int)unaff_s7 - (iVar16 - (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 - (iVar16 - (int)pppppppiVar11[0x25]))" (( "(") (binary_expression "(int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (- "-") (parenthesized_expression "(iVar16 - (int)pppppppiVar11[0x25])" (( "(") (binary_expression "iVar16 - (int)pppppppiVar11[0x25]" (identifier "iVar16") (- "-") (cast_expression "(int)pppppppiVar11[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar11[0x25]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x25") (] "]")))) () ")"))) () ")")))) (; ";")) (} "}")))) (expression_statement "ppppppiVar4 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar4 = pppppppiVar11[0x2e]" (identifier "ppppppiVar4") (= "=") (subscript_expression "pppppppiVar11[0x2e]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2e") (] "]"))) (; ";")) (expression_statement "local_370 = unaff_s7;" (assignment_expression "local_370 = unaff_s7" (identifier "local_370") (= "=") (identifier "unaff_s7")) (; ";")) (goto_statement "goto LAB_0001bc90;" (goto "goto") (statement_identifier "LAB_0001bc90") (; ";")) (} "}"))) (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"))) (; ";")) (if_statement "if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;" (if "if") (parenthesized_expression "(pppppppiVar21 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar21 != (int *******)0x0" (identifier "pppppppiVar21") (!= "!=") (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 = local_2d4;" (statement_identifier "LAB_0001be20") (: ":") (expression_statement "unaff_s6 = local_2d4;" (assignment_expression "unaff_s6 = local_2d4" (identifier "unaff_s6") (= "=") (identifier "local_2d4")) (; ";"))) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" (identifier "pppppppiVar6") (= "=") (identifier "local_354")) (; ";")) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    } while (unaff_s6 != pppppppiVar6);" (do "do") (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n    }" ({ "{") (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" (* "*") (identifier "pppppppiVar6")) (= "=") (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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" (identifier "pppppppiVar6") (= "=") (binary_expression "pppppppiVar6 + 1" (identifier "pppppppiVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s6 != pppppppiVar6)" (( "(") (binary_expression "unaff_s6 != pppppppiVar6" (identifier "unaff_s6") (!= "!=") (identifier "pppppppiVar6")) () ")")) (; ";")) (expression_statement "unaff_s7 = local_254;" (assignment_expression "unaff_s7 = local_254" (identifier "unaff_s7") (= "=") (identifier "local_254")) (; ";")) (expression_statement "pppppppiVar6 = unaff_s6;" (assignment_expression "pppppppiVar6 = unaff_s6" (identifier "pppppppiVar6") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    } while (unaff_s7 != pppppppiVar6);" (do "do") (compound_statement "{\n      *pppppppiVar6 = (int ******)0x0;\n      pppppppiVar6 = pppppppiVar6 + 1;\n      pppppppiVar7 = unaff_s7;\n    }" ({ "{") (expression_statement "*pppppppiVar6 = (int ******)0x0;" (assignment_expression "*pppppppiVar6 = (int ******)0x0" (pointer_expression "*pppppppiVar6" (* "*") (identifier "pppppppiVar6")) (= "=") (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 "pppppppiVar6 = pppppppiVar6 + 1;" (assignment_expression "pppppppiVar6 = pppppppiVar6 + 1" (identifier "pppppppiVar6") (= "=") (binary_expression "pppppppiVar6 + 1" (identifier "pppppppiVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar7 = unaff_s7;" (assignment_expression "pppppppiVar7 = unaff_s7" (identifier "pppppppiVar7") (= "=") (identifier "unaff_s7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s7 != pppppppiVar6)" (( "(") (binary_expression "unaff_s7 != pppppppiVar6" (identifier "unaff_s7") (!= "!=") (identifier "pppppppiVar6")) () ")")) (; ";")) (do_statement "do {\n      *pppppppiVar7 = (int ******)0x0;\n      pppppppiVar7 = pppppppiVar7 + 1;\n    } while (local_1d4 != 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 "(local_1d4 != pppppppiVar7)" (( "(") (binary_expression "local_1d4 != pppppppiVar7" (identifier "local_1d4") (!= "!=") (identifier "pppppppiVar7")) () ")")) (; ";")) (expression_statement "local_378 = -1;" (assignment_expression "local_378 = -1" (identifier "local_378") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (ppppppiVar4 == (int ******)0x1) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }\n    else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x1)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x1" (identifier "ppppppiVar4") (== "==") (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = pppppppiVar14;\n      local_37c = local_354;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_37c;\n      pppppppiVar14 = local_380;\n    }" ({ "{") (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (int *******)0x400" (identifier "pppppppiVar15") (= "=") (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" (identifier "local_380") (= "=") (identifier "pppppppiVar14")) (; ";")) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" (identifier "local_37c") (= "=") (identifier "local_354")) (; ";")) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" (identifier "iVar16") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],unaff_s6,&local_378)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "unaff_s6") (, ",") (pointer_expression "&local_378" (& "&") (identifier "local_378")) () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";"))) (labeled_statement "LAB_0001c1ec:\n      iVar16 = local_378 + 1;" (statement_identifier "LAB_0001c1ec") (: ":") (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" (identifier "iVar16") (= "=") (binary_expression "local_378 + 1" (identifier "local_378") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pppppppiVar6 = local_37c;" (assignment_expression "pppppppiVar6 = local_37c" (identifier "pppppppiVar6") (= "=") (identifier "local_37c")) (; ";")) (expression_statement "pppppppiVar14 = local_380;" (assignment_expression "pppppppiVar14 = local_380" (identifier "pppppppiVar14") (= "=") (identifier "local_380")) (; ";")) (} "}")) (else_clause "else if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" (else "else") (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }\n    else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x0" (identifier "ppppppiVar4") (== "==") (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      pppppppiVar15 = (int *******)0x400;\n      local_380 = local_354;\n      local_37c = pppppppiVar14;\n      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);\n      if (iVar16 == 0) goto LAB_0001c364;\n      iVar16 = local_378 + 1;\n      pppppppiVar6 = local_380;\n      pppppppiVar14 = local_37c;\n    }" ({ "{") (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (int *******)0x400" (identifier "pppppppiVar15") (= "=") (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 "local_380 = local_354;" (assignment_expression "local_380 = local_354" (identifier "local_380") (= "=") (identifier "local_354")) (; ";")) (expression_statement "local_37c = pppppppiVar14;" (assignment_expression "local_37c = pppppppiVar14" (identifier "local_37c") (= "=") (identifier "pppppppiVar14")) (; ";")) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" (identifier "iVar16") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],local_354,&local_378)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],local_354,&local_378)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "local_354") (, ",") (pointer_expression "&local_378" (& "&") (identifier "local_378")) () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0001c364;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";"))) (expression_statement "iVar16 = local_378 + 1;" (assignment_expression "iVar16 = local_378 + 1" (identifier "iVar16") (= "=") (binary_expression "local_378 + 1" (identifier "local_378") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar6 = local_380;" (assignment_expression "pppppppiVar6 = local_380" (identifier "pppppppiVar6") (= "=") (identifier "local_380")) (; ";")) (expression_statement "pppppppiVar14 = local_37c;" (assignment_expression "pppppppiVar14 = local_37c" (identifier "pppppppiVar14") (= "=") (identifier "local_37c")) (; ";")) (} "}")) (else_clause "else {\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" (else "else") (compound_statement "{\n      if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }\n      iVar16 = 0;\n      pppppppiVar6 = local_354;\n      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;\n    }" ({ "{") (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x2" (identifier "ppppppiVar4") (== "==") (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        pppppppiVar15 = (int *******)0x400;\n        local_380 = pppppppiVar14;\n        local_37c = local_354;\n        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);\n        if (iVar16 != 0) goto LAB_0001c1ec;\nLAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);\n        FUN_00020df0(pppppppiVar11[6]);\n        goto LAB_0001bcc4;\n      }" ({ "{") (expression_statement "pppppppiVar15 = (int *******)0x400;" (assignment_expression "pppppppiVar15 = (int *******)0x400" (identifier "pppppppiVar15") (= "=") (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 "local_380 = pppppppiVar14;" (assignment_expression "local_380 = pppppppiVar14" (identifier "local_380") (= "=") (identifier "pppppppiVar14")) (; ";")) (expression_statement "local_37c = local_354;" (assignment_expression "local_37c = local_354" (identifier "local_37c") (= "=") (identifier "local_354")) (; ";")) (expression_statement "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);" (assignment_expression "iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" (identifier "iVar16") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],unaff_s7,&local_378)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "unaff_s7") (, ",") (pointer_expression "&local_378" (& "&") (identifier "local_378")) () ")")))) (; ";")) (if_statement "if (iVar16 != 0) goto LAB_0001c1ec;" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c1ec;" (goto "goto") (statement_identifier "LAB_0001c1ec") (; ";"))) (labeled_statement "LAB_0001c364:\n        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" (statement_identifier "LAB_0001c364") (: ":") (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x348c)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (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") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";")) (} "}"))) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar6 = local_354;" (assignment_expression "pppppppiVar6 = local_354" (identifier "pppppppiVar6") (= "=") (identifier "local_354")) (; ";")) (if_statement "if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x3)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x3" (identifier "ppppppiVar4") (== "==") (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") (; ";"))) (} "}")))))) (expression_statement "pppppppiVar13 = pppppppiVar6;" (assignment_expression "pppppppiVar13 = pppppppiVar6" (identifier "pppppppiVar13") (= "=") (identifier "pppppppiVar6")) (; ";")) (expression_statement "pppppppiVar15 = unaff_s7;" (assignment_expression "pppppppiVar15 = unaff_s7" (identifier "pppppppiVar15") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "local_398 = pppppppiVar14;" (assignment_expression "local_398 = pppppppiVar14" (identifier "local_398") (= "=") (identifier "pppppppiVar14")) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d6c)" (* "*") (cast_expression "(code **)(local_390 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d6c)" (( "(") (binary_expression "local_390 + -0x7d6c" (identifier "local_390") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(iVar16,pppppppiVar13,unaff_s6)" (( "(") (identifier "iVar16") (, ",") (identifier "pppppppiVar13") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (if_statement "if (iVar16 < 0) {\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }\n    else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar14 = (int *******)*puVar8;\n      unaff_s6 = pppppppiVar14;\n      if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }\nLAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];\n    }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)*puVar8;" (assignment_expression "pppppppiVar14 = (int *******)*puVar8" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)*puVar8" (( "(") (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 "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "unaff_s6 = pppppppiVar14;" (assignment_expression "unaff_s6 = pppppppiVar14" (identifier "unaff_s6") (= "=") (identifier "pppppppiVar14")) (; ";")) (if_statement "if (pppppppiVar14 != (int *******)0x4) {\n        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" (if "if") (parenthesized_expression "(pppppppiVar14 != (int *******)0x4)" (( "(") (binary_expression "pppppppiVar14 != (int *******)0x4" (identifier "pppppppiVar14") (!= "!=") (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        pppppppiVar23 = (int *******)pppppppiVar11[6];\n        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);\n        pppppppiVar17 = pppppppiVar23;\n        goto LAB_0001c18c;\n      }" ({ "{") (expression_statement "pppppppiVar23 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar23 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar23") (= "=") (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 "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14)" (( "(") (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 **)(local_390 + -0x7ddc))(pppppppiVar14)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ddc)" (* "*") (cast_expression "(code **)(local_390 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ddc)" (( "(") (binary_expression "local_390 + -0x7ddc" (identifier "local_390") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar14)" (( "(") (identifier "pppppppiVar14") () ")"))))) (; ";")) (expression_statement "pppppppiVar17 = pppppppiVar23;" (assignment_expression "pppppppiVar17 = pppppppiVar23" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar23")) (; ";")) (goto_statement "goto LAB_0001c18c;" (goto "goto") (statement_identifier "LAB_0001c18c") (; ";")) (} "}"))) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar9 = pppppppiVar11[0x2d];" (statement_identifier "LAB_0001c1b0") (: ":") (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" (else "else") (compound_statement "{\n      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);\n      unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);\n      iVar16 = (**(code **)(local_390 + -0x7d84))();\n      pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);\n      pppppppiVar13 = unaff_s6;\n      pppppppiVar14 = unaff_s7;\n      iVar16 = FUN_0001868c(pppppppiVar11);\n      if (iVar16 == 0) goto LAB_0001bcc4;\n      ppppppiVar9 = pppppppiVar11[0x2d];\n      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;\n    }" ({ "{") (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d84)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d84)" (* "*") (cast_expression "(code **)(local_390 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d84)" (( "(") (binary_expression "local_390 + -0x7d84" (identifier "local_390") (+ "+") (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)local_354[iVar16]) != 0);" (assignment_expression "unaff_s6 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" (identifier "unaff_s6") (= "=") (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 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)local_354[iVar16]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]" (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)local_354[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_354[iVar16]" (identifier "local_354") ([ "[") (identifier "iVar16") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d84)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d84)" (* "*") (cast_expression "(code **)(local_390 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d84)" (( "(") (binary_expression "local_390 + -0x7d84" (identifier "local_390") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);" (assignment_expression "unaff_s7 = (int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)\n                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 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)local_2d4[iVar16]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]" (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)local_2d4[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_2d4[iVar16]" (identifier "local_2d4") ([ "[") (identifier "iVar16") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d84))();" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d84))()" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d84))()" (parenthesized_expression "(**(code **)(local_390 + -0x7d84))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d84)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d84)" (* "*") (cast_expression "(code **)(local_390 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d84)" (( "(") (binary_expression "local_390 + -0x7d84" (identifier "local_390") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);" (assignment_expression "pppppppiVar15 =\n           (int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)\n           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 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)local_254[iVar16]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]" (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)local_254[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_254[iVar16]" (identifier "local_254") ([ "[") (identifier "iVar16") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "pppppppiVar13 = unaff_s6;" (assignment_expression "pppppppiVar13 = unaff_s6" (identifier "pppppppiVar13") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" (identifier "pppppppiVar14") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" (identifier "iVar16") (= "=") (call_expression "FUN_0001868c(pppppppiVar11)" (identifier "FUN_0001868c") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";"))) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (if_statement "if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;" (if "if") (parenthesized_expression "(ppppppiVar9 == (int ******)0x14)" (( "(") (binary_expression "ppppppiVar9 == (int ******)0x14" (identifier "ppppppiVar9") (== "==") (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 "local_370 = (int *******)0x0;" (assignment_expression "local_370 = (int *******)0x0" (identifier "local_370") (= "=") (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  local_36c = 0;" (statement_identifier "LAB_0001bc90") (: ":") (expression_statement "local_36c = 0;" (assignment_expression "local_36c = 0" (identifier "local_36c") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pppppppiVar14 = (int *******)&local_370;" (assignment_expression "pppppppiVar14 = (int *******)&local_370" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)&local_370" (( "(") (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 "&local_370" (& "&") (identifier "local_370")))) (; ";")) (if_statement "if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;" (if "if") (parenthesized_expression "(pppppppiVar21 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar21 == (int *******)0x0" (identifier "pppppppiVar21") (== "==") (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  local_35c = pppppppiVar11[0x29];" (statement_identifier "LAB_0001bc98") (: ":") (expression_statement "local_35c = pppppppiVar11[0x29];" (assignment_expression "local_35c = pppppppiVar11[0x29]" (identifier "local_35c") (= "=") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]"))) (; ";"))) (expression_statement "local_358 = 0;" (assignment_expression "local_358 = 0" (identifier "local_358") (= "=") (number_literal "0")) (; ";")) (if_statement "if (ppppppiVar4 != (int ******)0x1) {\n    if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" (if "if") (parenthesized_expression "(ppppppiVar4 != (int ******)0x1)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x1" (identifier "ppppppiVar4") (!= "!=") (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 (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }\n    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;\n    goto LAB_0001bcc4;\n  }" ({ "{") (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x0" (identifier "ppppppiVar4") (== "==") (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      local_358 = 0x30000;\n      goto LAB_0001bd54;\n    }" ({ "{") (expression_statement "local_358 = 0x30000;" (assignment_expression "local_358 = 0x30000" (identifier "local_358") (= "=") (number_literal "0x30000")) (; ";")) (goto_statement "goto LAB_0001bd54;" (goto "goto") (statement_identifier "LAB_0001bd54") (; ";")) (} "}"))) (if_statement "if (ppppppiVar4 == (int ******)0x2) {\n      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x2)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x2" (identifier "ppppppiVar4") (== "==") (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      local_358 = 0x20000;\n      goto LAB_0001bd54;\n    }" ({ "{") (expression_statement "local_358 = 0x20000;" (assignment_expression "local_358 = 0x20000" (identifier "local_358") (= "=") (number_literal "0x20000")) (; ";")) (goto_statement "goto LAB_0001bd54;" (goto "goto") (statement_identifier "LAB_0001bd54") (; ";")) (} "}"))) (if_statement "if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;" (if "if") (parenthesized_expression "(ppppppiVar4 != (int ******)0x3)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x3" (identifier "ppppppiVar4") (!= "!=") (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_0001bd54;" (goto "goto") (statement_identifier "LAB_0001bd54") (; ";"))) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";")) (} "}"))) (expression_statement "local_358 = 0x60000;" (assignment_expression "local_358 = 0x60000" (identifier "local_358") (= "=") (number_literal "0x60000")) (; ";")) (labeled_statement "LAB_0001bd54:\n  if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" (statement_identifier "LAB_0001bd54") (: ":") (if_statement "if (pppppppiVar14 == (int *******)0x0) {\n    iVar16 = -1;\n  }\n  else {\n    iVar16 = (int)local_370 * 1000;\n  }" (if "if") (parenthesized_expression "(pppppppiVar14 == (int *******)0x0)" (( "(") (binary_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"))) () ")")) (compound_statement "{\n    iVar16 = -1;\n  }" ({ "{") (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n    iVar16 = (int)local_370 * 1000;\n  }" (else "else") (compound_statement "{\n    iVar16 = (int)local_370 * 1000;\n  }" ({ "{") (expression_statement "iVar16 = (int)local_370 * 1000;" (assignment_expression "iVar16 = (int)local_370 * 1000" (identifier "iVar16") (= "=") (binary_expression "(int)local_370 * 1000" (cast_expression "(int)local_370" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_370")) (* "*") (number_literal "1000"))) (; ";")) (} "}"))))) (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7dac)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7dac)" (* "*") (cast_expression "(code **)(local_390 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7dac)" (( "(") (binary_expression "local_390 + -0x7dac" (identifier "local_390") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(ppppppiVar26,1,iVar16)" (( "(") (identifier "ppppppiVar26") (, ",") (number_literal "1") (, ",") (identifier "iVar16") () ")")))) (; ";")) (if_statement "if (iVar16 < 0) {\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    if (*piVar3 != 4) goto LAB_0001bd98;\n    goto LAB_0001c1b0;\n  }" ({ "{") (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar3 != 4) goto LAB_0001bd98;" (if "if") (parenthesized_expression "(*piVar3 != 4)" (( "(") (binary_expression "*piVar3 != 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0001bd98;" (goto "goto") (statement_identifier "LAB_0001bd98") (; ";"))) (goto_statement "goto LAB_0001c1b0;" (goto "goto") (statement_identifier "LAB_0001c1b0") (; ";")) (} "}"))) (expression_statement "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)((local_358 << 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 "((local_358 << 0x1d) >> 0x1f)" (( "(") (binary_expression "(local_358 << 0x1d) >> 0x1f" (parenthesized_expression "(local_358 << 0x1d)" (( "(") (binary_expression "local_358 << 0x1d" (identifier "local_358") (<< "<<") (number_literal "0x1d")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);" (assignment_expression "pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)(uint)((local_358 & 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)((local_358 & 0xba) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((local_358 & 0xba) != 0)" (( "(") (binary_expression "(local_358 & 0xba) != 0" (parenthesized_expression "(local_358 & 0xba)" (( "(") (binary_expression "local_358 & 0xba" (identifier "local_358") (& "&") (number_literal "0xba")) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);" (assignment_expression "pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)((int)local_358._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)local_358._2_2_ & 1)" (( "(") (binary_expression "(int)local_358._2_2_ & 1" (cast_expression "(int)local_358._2_2_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_358._2_2_" (identifier "local_358") (. ".") (field_identifier "_2_2_"))) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar16 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar16 = FUN_0001868c(pppppppiVar11)" (identifier "iVar16") (= "=") (call_expression "FUN_0001868c(pppppppiVar11)" (identifier "FUN_0001868c") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")")))) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";"))) (expression_statement "ppppppiVar9 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar9 = pppppppiVar11[0x2d]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (if_statement "if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;" (if "if") (parenthesized_expression "(ppppppiVar9 != (int ******)0x14)" (( "(") (binary_expression "ppppppiVar9 != (int ******)0x14" (identifier "ppppppiVar9") (!= "!=") (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 ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" (statement_identifier "LAB_0001c01c") (: ":") (if_statement "if ((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" (if "if") (parenthesized_expression "((ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" (( "(") (binary_expression "(ppppppiVar19[0x12] != (int *****)0x0) &&\n     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar19[0x12] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar19[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar19[0x12]" (identifier "ppppppiVar19") ([ "[") (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 "(pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (( "(") (comma_expression "pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar15 = (int *******)0x0" (identifier "pppppppiVar15") (= "=") (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    pppppppiVar14 = pppppppiVar11 + 0xb;\n    pppppppiVar13 = pppppppiVar11;\n    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);\n  }" ({ "{") (expression_statement "pppppppiVar14 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar14 = pppppppiVar11 + 0xb" (identifier "pppppppiVar14") (= "=") (binary_expression "pppppppiVar11 + 0xb" (identifier "pppppppiVar11") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "pppppppiVar13 = pppppppiVar11;" (assignment_expression "pppppppiVar13 = pppppppiVar11" (identifier "pppppppiVar13") (= "=") (identifier "pppppppiVar11")) (; ";")) (expression_statement "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);" (call_expression "(*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13])" (parenthesized_expression "(*(code *)ppppppiVar19[0x12])" (( "(") (pointer_expression "*(code *)ppppppiVar19[0x12]" (* "*") (cast_expression "(code *)ppppppiVar19[0x12]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppiVar19[0x12]" (identifier "ppppppiVar19") ([ "[") (number_literal "0x12") (] "]")))) () ")")) (argument_list "(ppppppiVar19[0x13])" (( "(") (subscript_expression "ppppppiVar19[0x13]" (identifier "ppppppiVar19") ([ "[") (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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);\n    ppppppiVar19 = pppppppiVar11[6];\n    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);\n    pppppppiVar14 = pppppppiVar17;\n    FUN_00020df0(ppppppiVar19);\n  }" ({ "{") (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" (identifier "uVar22") (= "=") (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" (* "*") (cast_expression "(undefined4 *)(local_390 + -0x7fac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fac)" (( "(") (binary_expression "local_390 + -0x7fac" (identifier "local_390") (+ "+") (number_literal "-0x7fac")) () ")"))))) (; ";")) (expression_statement "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20)" (identifier "pppppppiVar21") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7e20)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(local_390 + -0x7fd8)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd8)" (( "(") (binary_expression "local_390 + -0x7fd8" (identifier "local_390") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7e20")) () ")")))) (; ";")) (expression_statement "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0)" (identifier "ppppppiVar19") (= "=") (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fac) + -0x7be0)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(local_390 + -0x7fac)" (* "*") (cast_expression "(int *)(local_390 + -0x7fac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fac)" (( "(") (binary_expression "local_390 + -0x7fac" (identifier "local_390") (+ "+") (number_literal "-0x7fac")) () ")")))) (+ "+") (number_literal "-0x7be0")) () ")")))) (; ";")) (do_statement "do {\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    } while (pppppppiVar17 == (int *******)0x4);" (do "do") (compound_statement "{\n      while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }\n      local_398 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }\n      pppppppiVar13 = unaff_s7;\n      pppppppiVar14 = pppppppiVar24;\n      pppppppiVar15 = pppppppiVar17;\n      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);\n      if (-1 < iVar16) goto LAB_0001c4bc;\n      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();\n      pppppppiVar17 = (int *******)*puVar8;\n    }" ({ "{") (while_statement "while( true ) {\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        unaff_s7 = local_1d4;\n        pppppppiVar23 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);\n        do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);\n        do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);\n        local_394 = 0x400;\n        local_398 = &local_374;\n        local_374 = (int ******)0xffffffff;\n        pppppppiVar14 = pppppppiVar24;\n        pppppppiVar15 = pppppppiVar17;\n        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (local_374 != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar15 = pppppppiVar17;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar13 = unaff_s7;\n        pppppppiVar14 = pppppppiVar24;\n      }" ({ "{") (expression_statement "unaff_s7 = local_1d4;" (assignment_expression "unaff_s7 = local_1d4" (identifier "unaff_s7") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pppppppiVar23 = unaff_s7;" (assignment_expression "pppppppiVar23 = unaff_s7" (identifier "pppppppiVar23") (= "=") (identifier "unaff_s7")) (; ";")) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" (( "(") (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" (( "(") (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0))" (( "(") (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar24 = local_154, 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 "(pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)" (( "(") (comma_expression "pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar24 = local_154" (identifier "pppppppiVar24") (= "=") (identifier "local_154")) (, ",") (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          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        } while (pppppppiVar24 != pppppppiVar23);" (do "do") (compound_statement "{\n          pppppppiVar24 = local_154;\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          pppppppiVar17 = local_d4;\n          pppppppiVar13 = pppppppiVar24;\n        }" ({ "{") (expression_statement "pppppppiVar24 = local_154;" (assignment_expression "pppppppiVar24 = local_154" (identifier "pppppppiVar24") (= "=") (identifier "local_154")) (; ";")) (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" (* "*") (identifier "pppppppiVar23")) (= "=") (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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" (identifier "pppppppiVar23") (= "=") (binary_expression "pppppppiVar23 + 1" (identifier "pppppppiVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar17 = local_d4;" (assignment_expression "pppppppiVar17 = local_d4" (identifier "pppppppiVar17") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "pppppppiVar13 = pppppppiVar24;" (assignment_expression "pppppppiVar13 = pppppppiVar24" (identifier "pppppppiVar13") (= "=") (identifier "pppppppiVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar24 != pppppppiVar23)" (( "(") (binary_expression "pppppppiVar24 != pppppppiVar23" (identifier "pppppppiVar24") (!= "!=") (identifier "pppppppiVar23")) () ")")) (; ";")) (do_statement "do {\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        } while (pppppppiVar17 != pppppppiVar13);" (do "do") (compound_statement "{\n          *pppppppiVar13 = (int ******)0x0;\n          pppppppiVar13 = pppppppiVar13 + 1;\n          pppppppiVar23 = pppppppiVar17;\n        }" ({ "{") (expression_statement "*pppppppiVar13 = (int ******)0x0;" (assignment_expression "*pppppppiVar13 = (int ******)0x0" (pointer_expression "*pppppppiVar13" (* "*") (identifier "pppppppiVar13")) (= "=") (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 "pppppppiVar13 = pppppppiVar13 + 1;" (assignment_expression "pppppppiVar13 = pppppppiVar13 + 1" (identifier "pppppppiVar13") (= "=") (binary_expression "pppppppiVar13 + 1" (identifier "pppppppiVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar23 = pppppppiVar17;" (assignment_expression "pppppppiVar23 = pppppppiVar17" (identifier "pppppppiVar23") (= "=") (identifier "pppppppiVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar17 != pppppppiVar13)" (( "(") (binary_expression "pppppppiVar17 != pppppppiVar13" (identifier "pppppppiVar17") (!= "!=") (identifier "pppppppiVar13")) () ")")) (; ";")) (do_statement "do {\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        } while (pppppppiVar23 != &local_54);" (do "do") (compound_statement "{\n          *pppppppiVar23 = (int ******)0x0;\n          pppppppiVar23 = pppppppiVar23 + 1;\n          ppppppiVar26 = (int ******)0xffffffff;\n        }" ({ "{") (expression_statement "*pppppppiVar23 = (int ******)0x0;" (assignment_expression "*pppppppiVar23 = (int ******)0x0" (pointer_expression "*pppppppiVar23" (* "*") (identifier "pppppppiVar23")) (= "=") (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 "pppppppiVar23 = pppppppiVar23 + 1;" (assignment_expression "pppppppiVar23 = pppppppiVar23 + 1" (identifier "pppppppiVar23") (= "=") (binary_expression "pppppppiVar23 + 1" (identifier "pppppppiVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppiVar26 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar26 = (int ******)0xffffffff" (identifier "ppppppiVar26") (= "=") (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 "(pppppppiVar23 != &local_54)" (( "(") (binary_expression "pppppppiVar23 != &local_54" (identifier "pppppppiVar23") (!= "!=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) () ")")) (; ";")) (expression_statement "local_394 = 0x400;" (assignment_expression "local_394 = 0x400" (identifier "local_394") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "local_398 = &local_374;" (assignment_expression "local_398 = &local_374" (identifier "local_398") (= "=") (pointer_expression "&local_374" (& "&") (identifier "local_374"))) (; ";")) (expression_statement "local_374 = (int ******)0xffffffff;" (assignment_expression "local_374 = (int ******)0xffffffff" (identifier "local_374") (= "=") (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 "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" (identifier "pppppppiVar15") (= "=") (identifier "pppppppiVar17")) (; ";")) (expression_statement "iVar16 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar16 = FUN_00017e20(unaff_s6,unaff_s7)" (identifier "iVar16") (= "=") (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 (iVar16 == 0) {\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3434)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (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 (local_374 != (int ******)0xffffffff) break;" (if "if") (parenthesized_expression "(local_374 != (int ******)0xffffffff)" (( "(") (binary_expression "local_374 != (int ******)0xffffffff" (identifier "local_374") (!= "!=") (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        pppppppiVar15 = pppppppiVar17;" (statement_identifier "LAB_0001c4bc") (: ":") (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" (identifier "pppppppiVar15") (= "=") (identifier "pppppppiVar17")) (; ";"))) (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 "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" (identifier "pppppppiVar13") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar24")) (; ";")) (} "}"))) (expression_statement "local_398 = (int *******)0x0;" (assignment_expression "local_398 = (int *******)0x0" (identifier "local_398") (= "=") (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         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" (if "if") (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" (( "(") (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (local_398 = (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 "(local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" (( "(") (comma_expression "local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "local_398 = (int *******)0x0" (identifier "local_398") (= "=") (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        local_398 = &local_368;\n        local_368 = (int ******)0x0;\n        local_364 = 0;\n      }" ({ "{") (expression_statement "local_398 = &local_368;" (assignment_expression "local_398 = &local_368" (identifier "local_398") (= "=") (pointer_expression "&local_368" (& "&") (identifier "local_368"))) (; ";")) (expression_statement "local_368 = (int ******)0x0;" (assignment_expression "local_368 = (int ******)0x0" (identifier "local_368") (= "=") (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 "local_364 = 0;" (assignment_expression "local_364 = 0" (identifier "local_364") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pppppppiVar13 = unaff_s7;" (assignment_expression "pppppppiVar13 = unaff_s7" (identifier "pppppppiVar13") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar24;" (assignment_expression "pppppppiVar14 = pppppppiVar24" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "pppppppiVar15 = pppppppiVar17;" (assignment_expression "pppppppiVar15 = pppppppiVar17" (identifier "pppppppiVar15") (= "=") (identifier "pppppppiVar17")) (; ";")) (expression_statement "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7d6c))((int)local_374 + 1)" (parenthesized_expression "(**(code **)(local_390 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7d6c)" (* "*") (cast_expression "(code **)(local_390 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d6c)" (( "(") (binary_expression "local_390 + -0x7d6c" (identifier "local_390") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "((int)local_374 + 1)" (( "(") (binary_expression "(int)local_374 + 1" (cast_expression "(int)local_374" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_374")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (-1 < iVar16) goto LAB_0001c4bc;" (if "if") (parenthesized_expression "(-1 < iVar16)" (( "(") (binary_expression "-1 < iVar16" (number_literal "-1") (< "<") (identifier "iVar16")) () ")")) (goto_statement "goto LAB_0001c4bc;" (goto "goto") (statement_identifier "LAB_0001c4bc") (; ";"))) (expression_statement "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar17 = (int *******)*puVar8;" (assignment_expression "pppppppiVar17 = (int *******)*puVar8" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)*puVar8" (( "(") (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 "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar17 == (int *******)0x4)" (( "(") (binary_expression "pppppppiVar17 == (int *******)0x4" (identifier "pppppppiVar17") (== "==") (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 "ppppppiVar19 = pppppppiVar11[6];" (assignment_expression "ppppppiVar19 = pppppppiVar11[6]" (identifier "ppppppiVar19") (= "=") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);" (assignment_expression "pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" (identifier "pppppppiVar15") (= "=") (cast_expression "(int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17)" (( "(") (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 **)(local_390 + -0x7ddc))(pppppppiVar17)" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ddc)" (* "*") (cast_expression "(code **)(local_390 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ddc)" (( "(") (binary_expression "local_390 + -0x7ddc" (identifier "local_390") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar17)" (( "(") (identifier "pppppppiVar17") () ")"))))) (; ";")) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3470)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3470")) () ")")))) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar17;" (assignment_expression "pppppppiVar14 = pppppppiVar17" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar17")) (; ";")) (expression_statement "FUN_00020df0(ppppppiVar19);" (call_expression "FUN_00020df0(ppppppiVar19)" (identifier "FUN_00020df0") (argument_list "(ppppppiVar19)" (( "(") (identifier "ppppppiVar19") () ")"))) (; ";")) (} "}")) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" (else "else") (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\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    pppppppiVar13 = local_d4;\n    local_d4[1] = (int ******)0x0;\n    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);\n    local_d4[3] = (int ******)0x0;\n    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);\n    uVar22 = *(undefined4 *)(local_390 + -0x7fac);\n    local_d4[0] = (int ******)(*unaff_s6)[0x29];\n    local_d4[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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 4);\n    pppppppiVar17 = (int *******)pppppppiVar11[6];\n    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();\n    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar17);\n  }" ({ "{") (expression_statement "pppppppiVar13 = local_d4;" (assignment_expression "pppppppiVar13 = local_d4" (identifier "pppppppiVar13") (= "=") (identifier "local_d4")) (; ";")) (expression_statement "local_d4[1] = (int ******)0x0;" (assignment_expression "local_d4[1] = (int ******)0x0" (subscript_expression "local_d4[1]" (identifier "local_d4") ([ "[") (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 "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40)" (identifier "pppppppiVar21") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7b40)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd8)" (( "(") (binary_expression "local_390 + -0x7fd8" (identifier "local_390") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7b40")) () ")")))) (; ";")) (expression_statement "local_d4[3] = (int ******)0x0;" (assignment_expression "local_d4[3] = (int ******)0x0" (subscript_expression "local_d4[3]" (identifier "local_d4") ([ "[") (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 "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40)" (identifier "ppppppiVar19") (= "=") (cast_expression "(int ******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd8) + 0x7c40)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(local_390 + -0x7fd8)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd8)" (( "(") (binary_expression "local_390 + -0x7fd8" (identifier "local_390") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7c40")) () ")")))) (; ";")) (expression_statement "uVar22 = *(undefined4 *)(local_390 + -0x7fac);" (assignment_expression "uVar22 = *(undefined4 *)(local_390 + -0x7fac)" (identifier "uVar22") (= "=") (pointer_expression "*(undefined4 *)(local_390 + -0x7fac)" (* "*") (cast_expression "(undefined4 *)(local_390 + -0x7fac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fac)" (( "(") (binary_expression "local_390 + -0x7fac" (identifier "local_390") (+ "+") (number_literal "-0x7fac")) () ")"))))) (; ";")) (expression_statement "local_d4[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "local_d4[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "local_d4[0]" (identifier "local_d4") ([ "[") (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 "local_d4[2] = unaff_s6[0x10];" (assignment_expression "local_d4[2] = unaff_s6[0x10]" (subscript_expression "local_d4[2]" (identifier "local_d4") ([ "[") (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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();\n    } while (*piVar3 == 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }\n      piVar3 = (int *)(**(code **)(local_390 + -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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);\n        if (iVar16 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar13);\n        FUN_00018878();\n      }" ({ "{") (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))))" (( "(") (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))" (( "(") (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0))" (( "(") (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar17 = pppppppiVar13, 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 "(pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)" (( "(") (comma_expression "pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar17 = pppppppiVar13" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar13")) (, ",") (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          pppppppiVar14 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar14 = (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          pppppppiVar14 = (int *******)0xffffffff;\n        }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar14 = (int *******)0xffffffff" (identifier "pppppppiVar14") (= "=") (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          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" (else "else") (compound_statement "{\n          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" (identifier "pppppppiVar14") (= "=") (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 "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);" (assignment_expression "iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(local_390 + -0x7dac))(pppppppiVar13,2)" (parenthesized_expression "(**(code **)(local_390 + -0x7dac))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7dac)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7dac)" (* "*") (cast_expression "(code **)(local_390 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7dac)" (( "(") (binary_expression "local_390 + -0x7dac" (identifier "local_390") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(pppppppiVar13,2)" (( "(") (identifier "pppppppiVar13") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar16 < 0) break;" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar13);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar13)" (identifier "FUN_00017c40") (argument_list "(unaff_s6,pppppppiVar13)" (( "(") (identifier "unaff_s6") (, ",") (identifier "pppppppiVar13") () ")"))) (; ";")) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" (identifier "FUN_00018878") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_390 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_390 + -0x7e2c))()" (parenthesized_expression "(**(code **)(local_390 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7e2c)" (* "*") (cast_expression "(code **)(local_390 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7e2c)" (( "(") (binary_expression "local_390 + -0x7e2c" (identifier "local_390") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar3 == 4)" (( "(") (binary_expression "*piVar3 == 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "4")) () ")")) (; ";")) (expression_statement "pppppppiVar17 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar17 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar17") (= "=") (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 "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();" (assignment_expression "pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))()" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(**(code **)(local_390 + -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 **)(local_390 + -0x7ddc))()" (parenthesized_expression "(**(code **)(local_390 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(local_390 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(local_390 + -0x7ddc)" (* "*") (cast_expression "(code **)(local_390 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7ddc)" (( "(") (binary_expression "local_390 + -0x7ddc" (identifier "local_390") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450)" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)(*(int *)(local_390 + -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 *)(local_390 + -0x7fd4) + -0x3450)" (( "(") (binary_expression "*(int *)(local_390 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(local_390 + -0x7fd4)" (* "*") (cast_expression "(int *)(local_390 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_390 + -0x7fd4)" (( "(") (binary_expression "local_390 + -0x7fd4" (identifier "local_390") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3450")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(pppppppiVar17);" (call_expression "FUN_00020df0(pppppppiVar17)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar17)" (( "(") (identifier "pppppppiVar17") () ")"))) (; ";")) (} "}"))))) (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 "pcVar30 = *(code **)(local_390 + -0x7df4);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7df4)" (identifier "pcVar30") (= "=") (pointer_expression "*(code **)(local_390 + -0x7df4)" (* "*") (cast_expression "(code **)(local_390 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7df4)" (( "(") (binary_expression "local_390 + -0x7df4" (identifier "local_390") (+ "+") (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 "(*pcVar30)(pppppppiVar11);" (call_expression "(*pcVar30)(pppppppiVar11)" (parenthesized_expression "(*pcVar30)" (( "(") (pointer_expression "*pcVar30" (* "*") (identifier "pcVar30")) () ")")) (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";")) (labeled_statement "LAB_0001bd0c:\n  if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" (statement_identifier "LAB_0001bd0c") (: ":") (if_statement "if (local_54 == (int ******)*local_384) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(local_54 == (int ******)*local_384)" (( "(") (binary_expression "local_54 == (int ******)*local_384" (identifier "local_54") (== "==") (cast_expression "(int ******)*local_384" (( "(") (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 "*local_384" (* "*") (identifier "local_384")))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "pcVar30 = *(code **)(local_390 + -0x7d78);" (assignment_expression "pcVar30 = *(code **)(local_390 + -0x7d78)" (identifier "pcVar30") (= "=") (pointer_expression "*(code **)(local_390 + -0x7d78)" (* "*") (cast_expression "(code **)(local_390 + -0x7d78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_390 + -0x7d78)" (( "(") (binary_expression "local_390 + -0x7d78" (identifier "local_390") (+ "+") (number_literal "-0x7d78")) () ")"))))) (; ";")) (expression_statement "pcVar31 = FUN_0001c688;" (assignment_expression "pcVar31 = FUN_0001c688" (identifier "pcVar31") (= "=") (identifier "FUN_0001c688")) (; ";")) (expression_statement "ppppppiVar4 = local_54;" (assignment_expression "ppppppiVar4 = local_54" (identifier "ppppppiVar4") (= "=") (identifier "local_54")) (; ";")) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" (( "(") (pointer_expression "*pcVar30" (* "*") (identifier "pcVar30")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(pcVar30 + 0x22c64);" (assignment_expression "piVar3 = *(int **)(pcVar30 + 0x22c64)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(pcVar30 + 0x22c64)" (* "*") (cast_expression "(int **)(pcVar30 + 0x22c64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c64)" (( "(") (binary_expression "pcVar30 + 0x22c64" (identifier "pcVar30") (+ "+") (number_literal "0x22c64")) () ")"))))) (; ";")) (expression_statement "iStack_3d4 = *piVar3;" (assignment_expression "iStack_3d4 = *piVar3" (identifier "iStack_3d4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "*(undefined1 *)(ppppppiVar4 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar4 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar4 + 0x39)" (* "*") (cast_expression "(undefined1 *)(ppppppiVar4 + 0x39)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar4 + 0x39)" (( "(") (binary_expression "ppppppiVar4 + 0x39" (identifier "ppppppiVar4") (+ "+") (number_literal "0x39")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiStack_3d0 = pppppppiVar17;" (assignment_expression "pppppppiStack_3d0 = pppppppiVar17" (identifier "pppppppiStack_3d0") (= "=") (identifier "pppppppiVar17")) (; ";")) (expression_statement "ppppppiStack_3cc = ppppppiVar19;" (assignment_expression "ppppppiStack_3cc = ppppppiVar19" (identifier "ppppppiStack_3cc") (= "=") (identifier "ppppppiVar19")) (; ";")) (expression_statement "pppppppiStack_3c8 = pppppppiVar21;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar21" (identifier "pppppppiStack_3c8") (= "=") (identifier "pppppppiVar21")) (; ";")) (expression_statement "uStack_3c4 = uVar22;" (assignment_expression "uStack_3c4 = uVar22" (identifier "uStack_3c4") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "pppppppiStack_3c0 = pppppppiVar24;" (assignment_expression "pppppppiStack_3c0 = pppppppiVar24" (identifier "pppppppiStack_3c0") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "ppppppiStack_3bc = ppppppiVar26;" (assignment_expression "ppppppiStack_3bc = ppppppiVar26" (identifier "ppppppiStack_3bc") (= "=") (identifier "ppppppiVar26")) (; ";")) (expression_statement "pppppppiStack_3b8 = unaff_s6;" (assignment_expression "pppppppiStack_3b8 = unaff_s6" (identifier "pppppppiStack_3b8") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pppppppiStack_3b4 = unaff_s7;" (assignment_expression "pppppppiStack_3b4 = unaff_s7" (identifier "pppppppiStack_3b4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiStack_3b0 = pppppppiVar11;" (assignment_expression "pppppppiStack_3b0 = pppppppiVar11" (identifier "pppppppiStack_3b0") (= "=") (identifier "pppppppiVar11")) (; ";")) (expression_statement "pcStack_3ac = pcVar31;" (assignment_expression "pcStack_3ac = pcVar31" (identifier "pcStack_3ac") (= "=") (identifier "pcVar31")) (; ";")) (if_statement "if (ppppppiVar4[0x37] != (int *****)0xffffffff) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" (if "if") (parenthesized_expression "(ppppppiVar4[0x37] != (int *****)0xffffffff)" (( "(") (binary_expression "ppppppiVar4[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar4[0x37]" (identifier "ppppppiVar4") ([ "[") (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    iVar16 = (**(code **)(pcVar30 + 0x22c24))();\n    pppppiVar12 = ppppppiVar4[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }\n  }" ({ "{") (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))();" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))()" (identifier "iVar16") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c24)" (( "(") (binary_expression "pcVar30 + 0x22c24" (identifier "pcVar30") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar4[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x37]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[0x37]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x37") (] "]"))) (; ";")) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" ({ "{") (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (identifier "uVar10") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar13[iVar16]" (identifier "pppppppiVar13") ([ "[") (identifier "iVar16") (] "]"))))) (; ";")) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22c90)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c90)" (( "(") (binary_expression "pcVar30 + 0x22c90" (identifier "pcVar30") (+ "+") (number_literal "0x22c90")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" (else "else") (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n      pcVar31 = *(code **)(pcVar30 + 0x22c90);\n    }" ({ "{") (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (identifier "uVar10") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar13[iVar16]" (identifier "pppppppiVar13") ([ "[") (identifier "iVar16") (] "]"))))) (; ";")) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22c90);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22c90)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22c90)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c90)" (( "(") (binary_expression "pcVar30 + 0x22c90" (identifier "pcVar30") (+ "+") (number_literal "0x22c90")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar10 != 0) {\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*pcVar31)(pppppiVar12,auStack_3e0,8);\n    }" ({ "{") (expression_statement "(*pcVar31)(pppppiVar12,auStack_3e0,8);" (call_expression "(*pcVar31)(pppppiVar12,auStack_3e0,8)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(pppppiVar12,auStack_3e0,8)" (( "(") (identifier "pppppiVar12") (, ",") (identifier "auStack_3e0") (, ",") (number_literal "8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppiVar12 = ppppppiVar4[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x31]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[0x31]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x31") (] "]"))) (; ";")) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" (if "if") (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0'))" (( "(") (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 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)ppppppiVar4 + 0xe1) == '\0')" (( "(") (binary_expression "*(char *)((int)ppppppiVar4 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xe1)" (* "*") (cast_expression "(char *)((int)ppppppiVar4 + 0xe1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar4 + 0xe1)" (( "(") (binary_expression "(int)ppppppiVar4 + 0xe1" (cast_expression "(int)ppppppiVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar4")) (+ "+") (number_literal "0xe1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }\n  }" ({ "{") (expression_statement "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c24)" (( "(") (binary_expression "pcVar30 + 0x22c24" (identifier "pcVar30") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(pppppiVar12)" (( "(") (identifier "pppppiVar12") () ")")))) (; ";")) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }\n    else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\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      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" ({ "{") (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (identifier "uVar10") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar13[iVar16]" (identifier "pppppppiVar13") ([ "[") (identifier "iVar16") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" (else "else") (compound_statement "{\n      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];\n    }" ({ "{") (expression_statement "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];" (assignment_expression "uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (identifier "uVar10") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16]" (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)pppppppiVar13[iVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar13[iVar16]" (identifier "pppppppiVar13") ([ "[") (identifier "iVar16") (] "]"))))) (; ";")) (} "}")))) (if_statement "if (uVar10 != 0) {\n      FUN_0001afec(ppppppiVar4);\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0001afec(ppppppiVar4);\n    }" ({ "{") (expression_statement "FUN_0001afec(ppppppiVar4);" (call_expression "FUN_0001afec(ppppppiVar4)" (identifier "FUN_0001afec") (argument_list "(ppppppiVar4)" (( "(") (identifier "ppppppiVar4") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {\n    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" (if "if") (parenthesized_expression "((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0))" (( "(") (binary_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar4[0x3e] & 4) == 0)" (( "(") (binary_expression "((uint)ppppppiVar4[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar4[0x3e] & 4)" (( "(") (binary_expression "(uint)ppppppiVar4[0x3e] & 4" (cast_expression "(uint)ppppppiVar4[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar4[0x3e]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar4[3] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar4[3] != (int *****)0x0" (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (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    iVar16 = *(int *)(pcVar30 + 0x229fc);\n    pppppiVar12 = ppppppiVar4[3];\n    do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" ({ "{") (expression_statement "iVar16 = *(int *)(pcVar30 + 0x229fc);" (assignment_expression "iVar16 = *(int *)(pcVar30 + 0x229fc)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x229fc)" (* "*") (cast_expression "(int *)(pcVar30 + 0x229fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x229fc)" (( "(") (binary_expression "pcVar30 + 0x229fc" (identifier "pcVar30") (+ "+") (number_literal "0x229fc")) () ")"))))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (do_statement "do {\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" (do "do") (compound_statement "{\n      ppppiVar27 = pppppiVar12[0x29];\n      pppppiVar18 = (int *****)pppppiVar12[3];\n      if (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" ({ "{") (expression_statement "ppppiVar27 = pppppiVar12[0x29];" (assignment_expression "ppppiVar27 = pppppiVar12[0x29]" (identifier "ppppiVar27") (= "=") (subscript_expression "pppppiVar12[0x29]" (identifier "pppppiVar12") ([ "[") (number_literal "0x29") (] "]"))) (; ";")) (expression_statement "pppppiVar18 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar18 = (int *****)pppppiVar12[3]" (identifier "pppppiVar18") (= "=") (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 (ppppiVar27 != (int ****)0xffffffff) {\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" (if "if") (parenthesized_expression "(ppppiVar27 != (int ****)0xffffffff)" (( "(") (binary_expression "ppppiVar27 != (int ****)0xffffffff" (identifier "ppppiVar27") (!= "!=") (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        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));\n        ppppppiVar9 = pppppppiVar13[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        ppppppiVar19 = pppppppiVar14[iVar2];\n        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);\n        (*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);\n      }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c24)" (( "(") (binary_expression "pcVar30 + 0x22c24" (identifier "pcVar30") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar27)" (( "(") (identifier "ppppiVar27") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f))" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)(1 << ((uint)ppppiVar27 & 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)ppppiVar27 & 0x1f))" (( "(") (binary_expression "1 << ((uint)ppppiVar27 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)ppppiVar27 & 0x1f)" (( "(") (binary_expression "(uint)ppppiVar27 & 0x1f" (cast_expression "(uint)ppppiVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppiVar27")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (expression_statement "ppppppiVar9 = pppppppiVar13[iVar2];" (assignment_expression "ppppppiVar9 = pppppppiVar13[iVar2]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar13[iVar2]" (identifier "pppppppiVar13") ([ "[") (identifier "iVar2") (] "]"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c24)" (( "(") (binary_expression "pcVar30 + 0x22c24" (identifier "pcVar30") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar27)" (( "(") (identifier "ppppiVar27") () ")")))) (; ";")) (expression_statement "ppppppiVar19 = pppppppiVar14[iVar2];" (assignment_expression "ppppppiVar19 = pppppppiVar14[iVar2]" (identifier "ppppppiVar19") (= "=") (subscript_expression "pppppppiVar14[iVar2]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar2") (] "]"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22c24))(ppppiVar27)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c24)" (( "(") (binary_expression "pcVar30 + 0x22c24" (identifier "pcVar30") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar27)" (( "(") (identifier "ppppiVar27") () ")")))) (; ";")) (expression_statement "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);" (call_expression "(*(code *)(iVar16 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" (parenthesized_expression "(*(code *)(iVar16 + -0x7974))" (( "(") (pointer_expression "*(code *)(iVar16 + -0x7974)" (* "*") (cast_expression "(code *)(iVar16 + -0x7974)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x7974)" (( "(") (binary_expression "iVar16 + -0x7974" (identifier "iVar16") (+ "+") (number_literal "-0x7974")) () ")")))) () ")")) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0)" (( "(") (identifier "pppppiVar12") (, ",") (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar9) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar9)" (( "(") (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar9" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)ppppppiVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppiVar9"))) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar19) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar19)" (( "(") (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar19" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)ppppppiVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppiVar19"))) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar15[iVar2])" (( "(") (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar15[iVar2]" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)pppppppiVar15[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar15[iVar2]" (identifier "pppppppiVar15") ([ "[") (identifier "iVar2") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" (identifier "pppppiVar12") (= "=") (identifier "pppppiVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar18 != (int *****)0x0" (identifier "pppppiVar18") (!= "!=") (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 (ppppppiVar4[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);\n  }" (if "if") (parenthesized_expression "(ppppppiVar4[0x42] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar4[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar4[0x42]" (identifier "ppppppiVar4") ([ "[") (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 = ppppppiVar4[0x42];\n    do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (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 = ppppppiVar4[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x42]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[0x42]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x42") (] "]"))) (; ";")) (do_statement "do {\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    } while (pppppiVar18 != (int *****)0x0);" (do "do") (compound_statement "{\n      pppppiVar18 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);\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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar18;\n    }" ({ "{") (expression_statement "pppppiVar18 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar18 = (int *****)pppppiVar12[2]" (identifier "pppppiVar18") (= "=") (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,pppppppiVar13,pppppppiVar14,pppppppiVar15);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" (identifier "FUN_00018420") (argument_list "(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15)" (( "(") (identifier "pppppiVar12") (, ",") (identifier "pppppppiVar13") (, ",") (identifier "pppppppiVar14") (, ",") (identifier "pppppppiVar15") () ")"))) (; ";")) (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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*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        pcVar31 = *(code **)(pcVar30 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar31)(*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 "pcVar31 = *(code **)(pcVar30 + 0x22bb4);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22bb4)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22bb4)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22bb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22bb4)" (( "(") (binary_expression "pcVar30 + 0x22bb4" (identifier "pcVar30") (+ "+") (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 "(*pcVar31)(*pppppiVar12);" (call_expression "(*pcVar31)(*pppppiVar12)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(*pppppiVar12)" (( "(") (pointer_expression "*pppppiVar12" (* "*") (identifier "pppppiVar12")) () ")"))) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = pppppiVar18;" (assignment_expression "pppppiVar12 = pppppiVar18" (identifier "pppppiVar12") (= "=") (identifier "pppppiVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppiVar18 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar18 != (int *****)0x0" (identifier "pppppiVar18") (!= "!=") (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(ppppppiVar4);" (call_expression "FUN_0001ab80(ppppppiVar4)" (identifier "FUN_0001ab80") (argument_list "(ppppppiVar4)" (( "(") (identifier "ppppppiVar4") () ")"))) (; ";")) (if_statement "if (iStack_3d4 == *piVar3) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(iStack_3d4 == *piVar3)" (( "(") (binary_expression "iStack_3d4 == *piVar3" (identifier "iStack_3d4") (== "==") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar30 = *(code **)(pcVar30 + 0x22c30);" (assignment_expression "pcVar30 = *(code **)(pcVar30 + 0x22c30)" (identifier "pcVar30") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22c30)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22c30)" (( "(") (binary_expression "pcVar30 + 0x22c30" (identifier "pcVar30") (+ "+") (number_literal "0x22c30")) () ")"))))) (; ";")) (expression_statement "iVar16 = iStack_3d4;" (assignment_expression "iVar16 = iStack_3d4" (identifier "iVar16") (= "=") (identifier "iStack_3d4")) (; ";")) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" (( "(") (pointer_expression "*pcVar30" (* "*") (identifier "pcVar30")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar29 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar29 = *(uint *)(iVar16 + 0xf8)" (identifier "uVar29") (= "=") (pointer_expression "*(uint *)(iVar16 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar16 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xf8)" (( "(") (binary_expression "iVar16 + 0xf8" (identifier "iVar16") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "uVar28 = uVar29 & 4;" (assignment_expression "uVar28 = uVar29 & 4" (identifier "uVar28") (= "=") (binary_expression "uVar29 & 4" (identifier "uVar29") (& "&") (number_literal "4"))) (; ";")) (expression_statement "pppppppiVar23 = (int *******)(uVar29 & 0x8000);" (assignment_expression "pppppppiVar23 = (int *******)(uVar29 & 0x8000)" (identifier "pppppppiVar23") (= "=") (cast_expression "(int *******)(uVar29 & 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 "(uVar29 & 0x8000)" (( "(") (binary_expression "uVar29 & 0x8000" (identifier "uVar29") (& "&") (number_literal "0x8000")) () ")")))) (; ";")) (expression_statement "uVar10 = uVar29;" (assignment_expression "uVar10 = uVar29" (identifier "uVar10") (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 0xf8);\n  }" (if "if") (parenthesized_expression "(*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0)" (( "(") (binary_expression "*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" (* "*") (cast_expression "(undefined4 **)(iVar16 + 0x108)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x108)" (( "(") (binary_expression "iVar16 + 0x108" (identifier "iVar16") (+ "+") (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    puVar8 = *(undefined4 **)(iVar16 + 0x108);\n    do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);\n    pppppppiVar13 = (int *******)0x0;\n    uVar10 = *(uint *)(iVar16 + 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 "puVar8 = *(undefined4 **)(iVar16 + 0x108);" (assignment_expression "puVar8 = *(undefined4 **)(iVar16 + 0x108)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(iVar16 + 0x108)" (* "*") (cast_expression "(undefined4 **)(iVar16 + 0x108)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x108)" (( "(") (binary_expression "iVar16 + 0x108" (identifier "iVar16") (+ "+") (number_literal "0x108")) () ")"))))) (; ";")) (do_statement "do {\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    } while (puVar20 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      puVar20 = (undefined4 *)puVar8[2];\n      FUN_00018878(puVar8);\n      FUN_00014600(*puVar8);\n      *(undefined1 *)((int)puVar8 + 0x51) = 1;\n      (**(code **)(pcVar30 + 0x22818))(*puVar8);\n      puVar8 = puVar20;\n    }" ({ "{") (expression_statement "puVar20 = (undefined4 *)puVar8[2];" (assignment_expression "puVar20 = (undefined4 *)puVar8[2]" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)puVar8[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "FUN_00018878(puVar8);" (call_expression "FUN_00018878(puVar8)" (identifier "FUN_00018878") (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "FUN_00014600(*puVar8);" (call_expression "FUN_00014600(*puVar8)" (identifier "FUN_00014600") (argument_list "(*puVar8)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x51)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0x51)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0x51)" (( "(") (binary_expression "(int)puVar8 + 0x51" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x51")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(**(code **)(pcVar30 + 0x22818))(*puVar8);" (call_expression "(**(code **)(pcVar30 + 0x22818))(*puVar8)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22818))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22818)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22818)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22818)" (( "(") (binary_expression "pcVar30 + 0x22818" (identifier "pcVar30") (+ "+") (number_literal "0x22818")) () ")"))))) () ")")) (argument_list "(*puVar8)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) () ")"))) (; ";")) (expression_statement "puVar8 = puVar20;" (assignment_expression "puVar8 = puVar20" (identifier "puVar8") (= "=") (identifier "puVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar20 != (undefined4 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pppppppiVar13 = (int *******)0x0;" (assignment_expression "pppppppiVar13 = (int *******)0x0" (identifier "pppppppiVar13") (= "=") (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 "uVar10 = *(uint *)(iVar16 + 0xf8);" (assignment_expression "uVar10 = *(uint *)(iVar16 + 0xf8)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar16 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar16 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xf8)" (( "(") (binary_expression "iVar16 + 0xf8" (identifier "iVar16") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((uVar10 & 0x2000) != 0) {\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x2000) != 0)" (( "(") (binary_expression "(uVar10 & 0x2000) != 0" (parenthesized_expression "(uVar10 & 0x2000)" (( "(") (binary_expression "uVar10 & 0x2000" (identifier "uVar10") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined1 *)(iVar16 + 0xe3) = 1;\n    FUN_00018028(iVar16);\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar16 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe3)" (( "(") (binary_expression "iVar16 + 0xe3" (identifier "iVar16") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" (identifier "FUN_00018028") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar25 = iVar16 + 0xac;" (assignment_expression "iVar25 = iVar16 + 0xac" (identifier "iVar25") (= "=") (binary_expression "iVar16 + 0xac" (identifier "iVar16") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22884)" (( "(") (binary_expression "pcVar30 + 0x22884" (identifier "pcVar30") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")")))) (; ";")) (expression_statement "uVar22 = 0x191e;" (assignment_expression "uVar22 = 0x191e" (identifier "uVar22") (= "=") (number_literal "0x191e")) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001cf0c;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cf0c;" (goto "goto") (statement_identifier "LAB_0001cf0c") (; ";"))) (if_statement "if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;" (if "if") (parenthesized_expression "(pppppppiVar23 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar23 == (int *******)0x0" (identifier "pppppppiVar23") (== "==") (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 "ppppppiVar4 = *(int *******)(iVar16 + 0x14);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0x14)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0x14)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0x14)" (( "(") (binary_expression "iVar16 + 0x14" (identifier "iVar16") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x0" (identifier "ppppppiVar4") (== "==") (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 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[0x38]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x38") (] "]"))) (; ";")) (expression_statement "uVar29 = uVar29 & 2;" (assignment_expression "uVar29 = uVar29 & 2" (identifier "uVar29") (= "=") (binary_expression "uVar29 & 2" (identifier "uVar29") (& "&") (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 "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 *)(pcVar30 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014)" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)(*(int *)(pcVar30 + 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 *)(pcVar30 + 0x22638) + -0x4014)" (( "(") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x4014")) () ")")))) (; ";")) (labeled_statement "LAB_0001cb18:\n  if (uVar29 == 0) goto LAB_0001cd7c;" (statement_identifier "LAB_0001cb18") (: ":") (if_statement "if (uVar29 == 0) goto LAB_0001cd7c;" (if "if") (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cd7c;" (goto "goto") (statement_identifier "LAB_0001cd7c") (; ";")))) (if_statement "if (uVar28 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\n    goto LAB_0001cd9c;\n  }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;\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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar13"))) (; ";")) (goto_statement "goto LAB_0001cd9c;" (goto "goto") (statement_identifier "LAB_0001cd9c") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar30 + 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 **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22744)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22744)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22744)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22744)" (( "(") (binary_expression "pcVar30 + 0x22744" (identifier "pcVar30") (+ "+") (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 *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar13"))) (; ";")) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" (statement_identifier "LAB_0001cb4c") (: ":") (expression_statement "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4 + 0x3f)" (* "*") (cast_expression "(char *)(ppppppiVar4 + 0x3f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar4 + 0x3f)" (( "(") (binary_expression "ppppppiVar4 + 0x3f" (identifier "ppppppiVar4") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar13"))) (; ";"))) (expression_statement "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;" (assignment_expression "*(char *)(iVar16 + 0xe3) = (char)pppppppiVar13" (pointer_expression "*(char *)(iVar16 + 0xe3)" (* "*") (cast_expression "(char *)(iVar16 + 0xe3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe3)" (( "(") (binary_expression "iVar16 + 0xe3" (identifier "iVar16") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar13"))) (; ";")) (labeled_statement "LAB_0001cb54:\n  ppppppiVar4 = (int ******)ppppppiVar4[3];" (statement_identifier "LAB_0001cb54") (: ":") (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" (if "if") (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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 = ppppppiVar4[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar22 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);\n  }" ({ "{") (expression_statement "pppppiVar12 = ppppppiVar4[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar4[0x38]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[0x38]" (identifier "ppppppiVar4") ([ "[") (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    uVar22 = 0x1929;" (statement_identifier "LAB_0001cb6c") (: ":") (expression_statement "uVar22 = 0x1929;" (assignment_expression "uVar22 = 0x1929" (identifier "uVar22") (= "=") (number_literal "0x1929")) (; ";"))) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    } while (*(int *)(iVar16 + 0x10) != 0);" (do "do") (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar22 = 0x1948;\n    }" ({ "{") (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x2264c)" (( "(") (binary_expression "pcVar30 + 0x2264c" (identifier "pcVar30") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                 *(int *)(pcVar30 + 0x22638) + -0x33d0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22644)" (( "(") (binary_expression "pcVar30 + 0x22644" (identifier "pcVar30") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar22") (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x33d0")) () ")"))) (; ";")) (labeled_statement "LAB_0001cb94:\n      uVar22 = 0x1948;" (statement_identifier "LAB_0001cb94") (: ":") (expression_statement "uVar22 = 0x1948;" (assignment_expression "uVar22 = 0x1948" (identifier "uVar22") (= "=") (number_literal "0x1948")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar16 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar16 + 0x10) != 0" (pointer_expression "*(int *)(iVar16 + 0x10)" (* "*") (cast_expression "(int *)(iVar16 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x10)" (( "(") (binary_expression "iVar16 + 0x10" (identifier "iVar16") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0001cba0:\n  ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (statement_identifier "LAB_0001cba0") (: ":") (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0xc)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22918)" (( "(") (binary_expression "pcVar30 + 0x22918" (identifier "pcVar30") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar4 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" (if "if") (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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 **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);\n    pcVar31 = *(code **)(pcVar30 + 0x22918);\n    ppppppiVar4 = (int ******)0x0;\n    if ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }\n  }" ({ "{") (do_statement "do {\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    } while (ppppppiVar4 != (int ******)0x0);" (do "do") (compound_statement "{\n      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);\n      ppppppiVar4 = (int ******)ppppppiVar4[3];\n    }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);" (call_expression "(**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22744))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22744)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22744)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22744)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22744)" (( "(") (binary_expression "pcVar30 + 0x22744" (identifier "pcVar30") (+ "+") (number_literal "0x22744")) () ")"))))) () ")")) (argument_list "(ppppppiVar4[0x29],2)" (( "(") (subscript_expression "ppppppiVar4[0x29]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x29") (] "]")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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 "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22918)" (( "(") (binary_expression "pcVar30 + 0x22918" (identifier "pcVar30") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (expression_statement "ppppppiVar4 = (int ******)0x0;" (assignment_expression "ppppppiVar4 = (int ******)0x0" (identifier "ppppppiVar4") (= "=") (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 ((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {\n      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" (if "if") (parenthesized_expression "((uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0))" (( "(") (binary_expression "(uVar28 != 0) &&\n       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" (parenthesized_expression "(uVar28 != 0)" (( "(") (binary_expression "uVar28 != 0" (identifier "uVar28") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)" (( "(") (comma_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0xc)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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      pppppppiVar13 = (int *******)0x1;\n      do {\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);\n    }" ({ "{") (expression_statement "pppppppiVar13 = (int *******)0x1;" (assignment_expression "pppppppiVar13 = (int *******)0x1" (identifier "pppppppiVar13") (= "=") (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 (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      } while (ppppppiVar4 != (int ******)0x0);" (do "do") (compound_statement "{\n        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        iVar2 = (*pcVar31)(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }\n        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);\n        if (iVar2 != 0) goto LAB_0001cf30;\n        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);\n        if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }\n        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n        pcVar31 = *(code **)(pcVar30 + 0x22918);\n      }" ({ "{") (while_statement "while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')\n        {\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" (while "while") (parenthesized_expression "(pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')" (( "(") (comma_expression "pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22918)" (( "(") (binary_expression "pcVar30 + 0x22918" (identifier "pcVar30") (+ "+") (number_literal "0x22918")) () ")"))))) (, ",") (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) != '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" (* "*") (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar4")) (+ "+") (number_literal "0xaa")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n          ppppppiVar4 = (int ******)ppppppiVar4[3];\n          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;\n        }" ({ "{") (expression_statement "ppppppiVar4 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar4 = (int ******)ppppppiVar4[3]" (identifier "ppppppiVar4") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x0" (identifier "ppppppiVar4") (== "==") (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 "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" (identifier "iVar2") (= "=") (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar22 = 0x195e;\n          goto LAB_0001cd58;\n        }" ({ "{") (expression_statement "uVar22 = 0x195e;" (assignment_expression "uVar22 = 0x195e" (identifier "uVar22") (= "=") (number_literal "0x195e")) (; ";")) (goto_statement "goto LAB_0001cd58;" (goto "goto") (statement_identifier "LAB_0001cd58") (; ";")) (} "}"))) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0)" (parenthesized_expression "(**(code **)(pcVar30 + 0x2277c))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x2277c)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x2277c)" (* "*") (cast_expression "(code **)(pcVar30 + 0x2277c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x2277c)" (( "(") (binary_expression "pcVar30 + 0x2277c" (identifier "pcVar30") (+ "+") (number_literal "0x2277c")) () ")"))))) () ")")) (argument_list "(ppppppiVar4[0x16],0)" (( "(") (subscript_expression "ppppppiVar4[0x16]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x16") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001cf30;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cf30;" (goto "goto") (statement_identifier "LAB_0001cf30") (; ";"))) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22884))(iVar25)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22884)" (( "(") (binary_expression "pcVar30 + 0x22884" (identifier "pcVar30") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar22 = 0x1961;\n          goto LAB_0001cf0c;\n        }" ({ "{") (expression_statement "uVar22 = 0x1961;" (assignment_expression "uVar22 = 0x1961" (identifier "uVar22") (= "=") (number_literal "0x1961")) (; ";")) (goto_statement "goto LAB_0001cf0c;" (goto "goto") (statement_identifier "LAB_0001cf0c") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar4 + 0xaa)" (* "*") (cast_expression "(undefined1 *)((int)ppppppiVar4 + 0xaa)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar4")) (+ "+") (number_literal "0xaa")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0xc)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22918)" (( "(") (binary_expression "pcVar30 + 0x22918" (identifier "pcVar30") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar4 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 != (int ******)0x0" (identifier "ppppppiVar4") (!= "!=") (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  iVar2 = (*pcVar31)(iVar25);" (statement_identifier "LAB_0001cc48") (: ":") (expression_statement "iVar2 = (*pcVar31)(iVar25);" (assignment_expression "iVar2 = (*pcVar31)(iVar25)" (identifier "iVar2") (= "=") (call_expression "(*pcVar31)(iVar25)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(iVar25)" (( "(") (identifier "iVar25") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) {\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }\n  else {\n    uVar22 = 0x196b;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }\n    do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);\n    uVar22 = 0x11dd;\n  }" ({ "{") (if_statement "if (pppppppiVar23 != (int *******)0x0) {\n      *(undefined1 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" (if "if") (parenthesized_expression "(pppppppiVar23 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar23 != (int *******)0x0" (identifier "pppppppiVar23") (!= "!=") (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 *)(iVar16 + 0xe3) = 1;\n      FUN_00018028(iVar16);\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar16 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar16 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar16 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar16 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xe3)" (( "(") (binary_expression "iVar16 + 0xe3" (identifier "iVar16") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00018028(iVar16);" (call_expression "FUN_00018028(iVar16)" (identifier "FUN_00018028") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")"))) (; ";")) (} "}"))) (do_statement "do {\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    } while (iVar2 == 0);" (do "do") (compound_statement "{\n      ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }\n      pppppppiVar23 = pppppppiVar13 + 0x2b;\n      FUN_00014148(ppppppiVar4,3);\n      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);\n      if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar4[5];\n      ppppppiVar9 = (int ******)ppppppiVar4[4];\n      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }\n      pcVar31 = *(code **)(pcVar30 + 0x22918);\n      pppppppiVar13[6] = ppppppiVar4;\n      iVar2 = (*pcVar31)(pppppppiVar23);\n    }" ({ "{") (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0xc)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (while_statement "while( true ) {\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }\n        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar13 = (int *******)ppppppiVar4[6];\n        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar4);\n        ppppppiVar4 = *(int *******)(iVar16 + 0xc);\n      }" ({ "{") (if_statement "if (ppppppiVar4 == (int ******)0x0) {\n          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" (if "if") (parenthesized_expression "(ppppppiVar4 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar4 == (int ******)0x0" (identifier "ppppppiVar4") (== "==") (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          iVar16 = FUN_0001ab80(iVar16);\n          return iVar16;\n        }" ({ "{") (expression_statement "iVar16 = FUN_0001ab80(iVar16);" (assignment_expression "iVar16 = FUN_0001ab80(iVar16)" (identifier "iVar16") (= "=") (call_expression "FUN_0001ab80(iVar16)" (identifier "FUN_0001ab80") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")")))) (; ";")) (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" (if "if") (parenthesized_expression "(((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))" (( "(") (binary_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar16 + 0xf8) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar16 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar16 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(iVar16 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar16 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar16 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xf8)" (( "(") (binary_expression "iVar16 + 0xf8" (identifier "iVar16") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)ppppppiVar4 + 0xaa) == '\0')" (( "(") (binary_expression "*(char *)((int)ppppppiVar4 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar4 + 0xaa)" (* "*") (cast_expression "(char *)((int)ppppppiVar4 + 0xaa)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar4 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar4 + 0xaa" (cast_expression "(int)ppppppiVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar4")) (+ "+") (number_literal "0xaa")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001cf30;" (goto "goto") (statement_identifier "LAB_0001cf30") (; ";"))) (expression_statement "pppppppiVar13 = (int *******)ppppppiVar4[6];" (assignment_expression "pppppppiVar13 = (int *******)ppppppiVar4[6]" (identifier "pppppppiVar13") (= "=") (cast_expression "(int *******)ppppppiVar4[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 "ppppppiVar4[6]" (identifier "ppppppiVar4") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;" (if "if") (parenthesized_expression "(((uint)pppppppiVar13[0x3e] & 4) == 0)" (( "(") (binary_expression "((uint)pppppppiVar13[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar13[0x3e] & 4)" (( "(") (binary_expression "(uint)pppppppiVar13[0x3e] & 4" (cast_expression "(uint)pppppppiVar13[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar13[0x3e]" (identifier "pppppppiVar13") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_000140b4(ppppppiVar4);" (call_expression "FUN_000140b4(ppppppiVar4)" (identifier "FUN_000140b4") (argument_list "(ppppppiVar4)" (( "(") (identifier "ppppppiVar4") () ")"))) (; ";")) (expression_statement "ppppppiVar4 = *(int *******)(iVar16 + 0xc);" (assignment_expression "ppppppiVar4 = *(int *******)(iVar16 + 0xc)" (identifier "ppppppiVar4") (= "=") (pointer_expression "*(int *******)(iVar16 + 0xc)" (* "*") (cast_expression "(int *******)(iVar16 + 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 "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pppppppiVar23 = pppppppiVar13 + 0x2b;" (assignment_expression "pppppppiVar23 = pppppppiVar13 + 0x2b" (identifier "pppppppiVar23") (= "=") (binary_expression "pppppppiVar13 + 0x2b" (identifier "pppppppiVar13") (+ "+") (number_literal "0x2b"))) (; ";")) (expression_statement "FUN_00014148(ppppppiVar4,3);" (call_expression "FUN_00014148(ppppppiVar4,3)" (identifier "FUN_00014148") (argument_list "(ppppppiVar4,3)" (( "(") (identifier "ppppppiVar4") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);" (assignment_expression "iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar30 + 0x22884))(pppppppiVar23)" (parenthesized_expression "(**(code **)(pcVar30 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22884)" (( "(") (binary_expression "pcVar30 + 0x22884" (identifier "pcVar30") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(pppppppiVar23)" (( "(") (identifier "pppppppiVar23") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        } while( true );" (do "do") (compound_statement "{\n          uVar22 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);\n        }" ({ "{") (expression_statement "uVar22 = 0x11ca;" (assignment_expression "uVar22 = 0x11ca" (identifier "uVar22") (= "=") (number_literal "0x11ca")) (; ";")) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" (statement_identifier "LAB_0001cf0c") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x2264c)" (( "(") (binary_expression "pcVar30 + 0x2264c" (identifier "pcVar30") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,\n                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22644)" (( "(") (binary_expression "pcVar30 + 0x22644" (identifier "pcVar30") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar22") (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";"))) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" (statement_identifier "LAB_0001cf30") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x2264c)" (( "(") (binary_expression "pcVar30 + 0x2264c" (identifier "pcVar30") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22644)" (( "(") (binary_expression "pcVar30 + 0x22644" (identifier "pcVar30") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = ppppppiVar4[5];" (assignment_expression "pppppiVar12 = ppppppiVar4[5]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[5]" (identifier "ppppppiVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[4];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[4]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[4]" (identifier "ppppppiVar4") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" (if "if") (parenthesized_expression "((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c])" (( "(") (binary_expression "(int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]" (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[0x26]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x26") (] "]"))) (== "==") (subscript_expression "pppppppiVar13[0x3c]" (identifier "pppppppiVar13") ([ "[") (number_literal "0x3c") (] "]"))) () ")")) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar13[0xd] = ppppppiVar9;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar13[2] = ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar13[3] = ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar13[7] = ppppppiVar4;\n      }" ({ "{") (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xc] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xc] = ppppppiVar9;\n        }" ({ "{") (expression_statement "pppppppiVar13[0xc] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xc] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xc]" (identifier "pppppppiVar13") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";")) (} "}")) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" (else "else") (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" ({ "{") (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" (identifier "pppppiVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar9" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar9"))) (; ";")) (} "}")))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[4]" (identifier "ppppppiVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[5]" (identifier "ppppppiVar4") ([ "[") (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 "pppppppiVar13[0xd] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xd] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xd]" (identifier "pppppppiVar13") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";")) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar4[3];" (statement_identifier "LAB_0001ccf4") (: ":") (expression_statement "pppppiVar12 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[4]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[5]" (identifier "ppppppiVar4") ([ "[") (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        pppppppiVar13[2] = ppppppiVar9;" (statement_identifier "LAB_0001cdfc") (: ":") (expression_statement "pppppppiVar13[2] = ppppppiVar9;" (assignment_expression "pppppppiVar13[2] = ppppppiVar9" (subscript_expression "pppppppiVar13[2]" (identifier "pppppppiVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";"))) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (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        pppppppiVar13[3] = ppppppiVar9;" (statement_identifier "LAB_0001ce0c") (: ":") (expression_statement "pppppppiVar13[3] = ppppppiVar9;" (assignment_expression "pppppppiVar13[3] = ppppppiVar9" (subscript_expression "pppppppiVar13[3]" (identifier "pppppppiVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";"))) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar13[6]" (identifier "pppppppiVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar9" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar9"))) (; ";")) (if_statement "if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;" (if "if") (parenthesized_expression "(pppppppiVar13[7] != (int ******)0x0)" (( "(") (binary_expression "pppppppiVar13[7] != (int ******)0x0" (subscript_expression "pppppppiVar13[7]" (identifier "pppppppiVar13") ([ "[") (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        pppppppiVar13[7] = ppppppiVar4;" (statement_identifier "LAB_0001ce2c") (: ":") (expression_statement "pppppppiVar13[7] = ppppppiVar4;" (assignment_expression "pppppppiVar13[7] = ppppppiVar4" (subscript_expression "pppppppiVar13[7]" (identifier "pppppppiVar13") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppiVar4")) (; ";"))) (} "}")) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" (else "else") (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }\n        pppppiVar12 = ppppppiVar4[4];\n        ppppppiVar9 = (int ******)ppppppiVar4[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar13[0xf] = ppppppiVar9;\n        ppppppiVar4[4] = (int *****)0x0;\n        ppppppiVar4[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar4[3];\n        ppppppiVar9 = (int ******)ppppppiVar4[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar9;\n        pppppiVar12 = ppppppiVar4[2];\n        ppppppiVar9 = (int ******)ppppppiVar4[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar9;\n        ppppppiVar4[2] = (int *****)0x0;\n        ppppppiVar4[3] = (int *****)0x0;\n        ppppppiVar9 = pppppppiVar13[6];\n        ppppppiVar4[2] = (int *****)ppppppiVar9;\n        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar9[3] = (int *****)ppppppiVar4;\n      }" ({ "{") (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar13[0xe] = ppppppiVar9;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\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          pppppppiVar13[0xe] = ppppppiVar9;\n        }" ({ "{") (expression_statement "pppppppiVar13[0xe] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xe] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xe]" (identifier "pppppppiVar13") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";")) (} "}")) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" (else "else") (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar9;\n        }" ({ "{") (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[4]" (identifier "pppppiVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar9" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar9"))) (; ";")) (} "}")))) (expression_statement "pppppiVar12 = ppppppiVar4[4];" (assignment_expression "pppppiVar12 = ppppppiVar4[4]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[4]" (identifier "ppppppiVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[5];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[5]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[5]" (identifier "ppppppiVar4") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;\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 ****)ppppppiVar9;\n          goto LAB_0001ccf4;\n        }" ({ "{") (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar9;" (statement_identifier "LAB_0001ccf0") (: ":") (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[5]" (identifier "pppppiVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar9" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar9"))) (; ";"))) (goto_statement "goto LAB_0001ccf4;" (goto "goto") (statement_identifier "LAB_0001ccf4") (; ";")) (} "}"))) (expression_statement "pppppppiVar13[0xf] = ppppppiVar9;" (assignment_expression "pppppppiVar13[0xf] = ppppppiVar9" (subscript_expression "pppppppiVar13[0xf]" (identifier "pppppppiVar13") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "ppppppiVar9")) (; ";")) (expression_statement "ppppppiVar4[4] = (int *****)0x0;" (assignment_expression "ppppppiVar4[4] = (int *****)0x0" (subscript_expression "ppppppiVar4[4]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar4[5] = (int *****)0x0;" (assignment_expression "ppppppiVar4[5] = (int *****)0x0" (subscript_expression "ppppppiVar4[5]" (identifier "ppppppiVar4") ([ "[") (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 = ppppppiVar4[3];" (assignment_expression "pppppiVar12 = ppppppiVar4[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[2];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[2]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (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 ****)ppppppiVar9;" (statement_identifier "LAB_0001cd08") (: ":") (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[2]" (identifier "pppppiVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar9" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar9"))) (; ";"))) (expression_statement "pppppiVar12 = ppppppiVar4[2];" (assignment_expression "pppppiVar12 = ppppppiVar4[2]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar9 = (int ******)ppppppiVar4[3];" (assignment_expression "ppppppiVar9 = (int ******)ppppppiVar4[3]" (identifier "ppppppiVar9") (= "=") (cast_expression "(int ******)ppppppiVar4[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 "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (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 ****)ppppppiVar9;" (statement_identifier "LAB_0001cd18") (: ":") (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar9;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar9" (subscript_expression "pppppiVar12[3]" (identifier "pppppiVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar9" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar9"))) (; ";"))) (expression_statement "ppppppiVar4[2] = (int *****)0x0;" (assignment_expression "ppppppiVar4[2] = (int *****)0x0" (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar4[3] = (int *****)0x0;" (assignment_expression "ppppppiVar4[3] = (int *****)0x0" (subscript_expression "ppppppiVar4[3]" (identifier "ppppppiVar4") ([ "[") (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 "ppppppiVar9 = pppppppiVar13[6];" (assignment_expression "ppppppiVar9 = pppppppiVar13[6]" (identifier "ppppppiVar9") (= "=") (subscript_expression "pppppppiVar13[6]" (identifier "pppppppiVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiVar4[2] = (int *****)ppppppiVar9;" (assignment_expression "ppppppiVar4[2] = (int *****)ppppppiVar9" (subscript_expression "ppppppiVar4[2]" (identifier "ppppppiVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar9" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar9"))) (; ";")) (if_statement "if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;" (if "if") (parenthesized_expression "(pppppppiVar13[7] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar13[7] == (int ******)0x0" (subscript_expression "pppppppiVar13[7]" (identifier "pppppppiVar13") ([ "[") (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        ppppppiVar9[3] = (int *****)ppppppiVar4;" (statement_identifier "LAB_0001cd38") (: ":") (expression_statement "ppppppiVar9[3] = (int *****)ppppppiVar4;" (assignment_expression "ppppppiVar9[3] = (int *****)ppppppiVar4" (subscript_expression "ppppppiVar9[3]" (identifier "ppppppiVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar4" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar4"))) (; ";"))) (} "}")))) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x22918);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x22918)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar30 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22918)" (( "(") (binary_expression "pcVar30 + 0x22918" (identifier "pcVar30") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (expression_statement "pppppppiVar13[6] = ppppppiVar4;" (assignment_expression "pppppppiVar13[6] = ppppppiVar4" (subscript_expression "pppppppiVar13[6]" (identifier "pppppppiVar13") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppppiVar4")) (; ";")) (expression_statement "iVar2 = (*pcVar31)(pppppppiVar23);" (assignment_expression "iVar2 = (*pcVar31)(pppppppiVar23)" (identifier "iVar2") (= "=") (call_expression "(*pcVar31)(pppppppiVar23)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(pppppppiVar23)" (( "(") (identifier "pppppppiVar23") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar22 = 0x11dd;" (assignment_expression "uVar22 = 0x11dd" (identifier "uVar22") (= "=") (number_literal "0x11dd")) (; ";")) (} "}")) (else_clause "else {\n    uVar22 = 0x196b;\n  }" (else "else") (compound_statement "{\n    uVar22 = 0x196b;\n  }" ({ "{") (expression_statement "uVar22 = 0x196b;" (assignment_expression "uVar22 = 0x196b" (identifier "uVar22") (= "=") (number_literal "0x196b")) (; ";")) (} "}")))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" (statement_identifier "LAB_0001cd58") (: ":") (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" (identifier "pppppiVar12") (= "=") (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 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 **)(pcVar30 + 0x2264c))\n                          (**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar30 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x2264c)" (( "(") (binary_expression "pcVar30 + 0x2264c" (identifier "pcVar30") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar30 + 0x22644),\n                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,\n                           *(int *)(pcVar30 + 0x22638) + -0x51b8)" (( "(") (pointer_expression "**(undefined4 **)(pcVar30 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar30 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar30 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x22644)" (( "(") (binary_expression "pcVar30 + 0x22644" (identifier "pcVar30") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar22") (, ",") (binary_expression "*(int *)(pcVar30 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar30 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar30 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x22638)" (( "(") (binary_expression "pcVar30 + 0x22638" (identifier "pcVar30") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x51b8")) () ")"))))) (; ";"))) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);\n  }" (statement_identifier "LAB_0001cd7c") (: ":") (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar16,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(iVar16,unaff_s7);\n  }" ({ "{") (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar16,unaff_s7);" (statement_identifier "LAB_0001cdb0") (: ":") (expression_statement "FUN_00020df0(iVar16,unaff_s7);" (call_expression "FUN_00020df0(iVar16,unaff_s7)" (identifier "FUN_00020df0") (argument_list "(iVar16,unaff_s7)" (( "(") (identifier "iVar16") (, ",") (identifier "unaff_s7") () ")"))) (; ";"))) (} "}")))) (expression_statement "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;" (assignment_expression "*(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13" (pointer_expression "*(char *)(ppppppiVar4[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar4[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar4[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar4[0x38] + 0x14" (subscript_expression "ppppppiVar4[0x38]" (identifier "ppppppiVar4") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar13"))) (; ";")) (if_statement "if (uVar28 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);\n  }" ({ "{") (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar4);" (statement_identifier "LAB_0001cd9c") (: ":") (expression_statement "FUN_00014600(ppppppiVar4);" (call_expression "FUN_00014600(ppppppiVar4)" (identifier "FUN_00014600") (argument_list "(ppppppiVar4)" (( "(") (identifier "ppppppiVar4") () ")"))) (; ";"))) (} "}"))) (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: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (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: (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: (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: (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: (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: (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))))) (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: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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))))) (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (identifier) right: (number_literal)))))) (return_statement (identifier)))))) (return_statement (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator))))))))) value: (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: (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: (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: (identifier) 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: (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 (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)))) 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: (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))) (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)))) 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))) (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))))) (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)))))))) (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)))) (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: (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)))))) (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: (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 (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))) (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))) (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: (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))) (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: (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: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))))) 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: (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: (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: (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;
  int *piVar3;
  int ******ppppppiVar4;
  undefined4 uVar5;
  int *******pppppppiVar6;
  int *******pppppppiVar7;
  undefined4 *puVar8;
  int ******ppppppiVar9;
  uint uVar10;
  int *******pppppppiVar11;
  int *****pppppiVar12;
  int *******pppppppiVar13;
  int *******pppppppiVar14;
  int *******pppppppiVar15;
  int iVar16;
  int *******pppppppiVar17;
  int *****pppppiVar18;
  int unaff_s1;
  int ******ppppppiVar19;
  undefined4 *puVar20;
  int unaff_s2;
  int *******pppppppiVar21;
  undefined4 uVar22;
  int *******pppppppiVar23;
  int *******pppppppiVar24;
  int iVar25;
  int ******ppppppiVar26;
  int ****ppppiVar27;
  uint uVar28;
  int *******unaff_s6;
  uint uVar29;
  int *******unaff_s7;
  code *pcVar30;
  code *pcVar31;
  undefined1 auStack_3e0 [12];
  int iStack_3d4;
  int *******pppppppiStack_3d0;
  int ******ppppppiStack_3cc;
  int *******pppppppiStack_3c8;
  undefined4 uStack_3c4;
  int *******pppppppiStack_3c0;
  int ******ppppppiStack_3bc;
  int *******pppppppiStack_3b8;
  int *******pppppppiStack_3b4;
  int *******pppppppiStack_3b0;
  code *pcStack_3ac;
  int *******local_398;
  undefined4 local_394;
  code *local_390;
  int *local_384;
  int *******local_380;
  int *******local_37c;
  int local_378;
  int ******local_374;
  int *******local_370;
  undefined4 local_36c;
  int ******local_368;
  undefined4 local_364;
  int ******local_35c;
  undefined4 local_358;
  int ******local_354 [32];
  int ******local_2d4 [32];
  int ******local_254 [32];
  int ******local_1d4 [32];
  int ******local_154 [32];
  int ******local_d4 [32];
  int ******local_54;
  int local_50;
  int local_4c;
  int local_48;
  
  iVar16 = *(int *)(param_1 + 0x18);
  if ((*(uint *)(iVar16 + 0xf8) & 0x2000) == 0) {
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xaff,
               PTR_DAT_0003f05c + -0x3514);
    param_1 = unaff_s1;
  }
  else {
    unaff_s2 = iVar16 + 0xac;
    iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(unaff_s2);
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    if (iVar2 != 0) goto LAB_0001bb7c;
    *(undefined1 *)(param_1 + 0xfc) = 1;
    *(undefined1 *)(iVar16 + 0xe3) = 1;
    iVar2 = (*(code *)puVar1)(unaff_s2);
    if (iVar2 == 0) {
      iVar2 = -1;
      if ((*(int *)(iVar16 + 0xdc) != -1) &&
         (iVar2 = (*(code *)PTR_write_0003f220)
                            (*(int *)(iVar16 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8), iVar2 < 1)) {
        piVar3 = (int *)(*(code *)PTR___errno_location_0003f204)();
        iVar2 = *piVar3;
        if (iVar2 != 0xb) {
          iVar16 = FUN_00020df0(iVar16,PTR_DAT_0003f05c + -0x34cc);
          return iVar16;
        }
      }
      return iVar2;
    }
  }
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xb06,
             PTR_DAT_0003f05c + -0x51b8);
LAB_0001bb7c:
  pppppppiVar11 = *(int ********)PTR_DAT_0003f068;
  pppppppiVar15 = (int *******)(PTR_DAT_0003f05c + -0x51e0);
  pcVar30 = *(code **)PTR_DAT_0003f070;
  pppppppiVar13 = (int *******)(PTR_DAT_0003f05c + -0x40a0);
  (*pcVar30)(pppppppiVar11,pppppppiVar13,0xb01);
  local_390 = pcVar30 + 0x2b48c;
  local_384 = *(int **)(pcVar30 + 0x23748);
  ppppppiVar26 = (int ******)&local_35c;
  uVar22 = 0x8000001f;
  ppppppiVar19 = pppppppiVar11[6];
  local_54 = (int ******)*local_384;
  pppppppiVar21 = (int *******)((uint)ppppppiVar19[0x3e] & 0x40);
  local_50 = iVar16;
  local_4c = param_1;
  local_48 = unaff_s2;
  ppppppiVar4 = (int ******)(**(code **)(pcVar30 + 0x23740))();
  ppppppiVar9 = pppppppiVar11[0x2d];
  pppppppiVar11[0x17] = ppppppiVar4;
  pppppppiVar24 = (int *******)(*(int *)(local_390 + -0x7fac) + -0x7974);
  pppppppiVar23 = (int *******)0x0;
LAB_0001bc2c:
  pppppppiVar17 = (int *******)(uint)*(byte *)(ppppppiVar19 + 0x38);
  if (pppppppiVar17 != (int *******)0x0) {
joined_r0x0001bdcc:
    if (ppppppiVar9 != (int ******)0x13) {
      pppppppiVar13 = (int *******)0x3;
      if (*(char *)(ppppppiVar19 + 0x38) == '\0') {
        pppppppiVar13 = (int *******)0x1;
      }
      FUN_00014148(pppppppiVar11);
    }
LAB_0001bdfc:
    FUN_00015e38(pppppppiVar11);
LAB_0001bcc4:
    if (pppppppiVar11[9] != (int ******)0x0) {
      (**(code **)(local_390 + -0x7d58))();
      pppppppiVar11[9] = (int ******)0x0;
    }
    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {
      pppppppiVar13 = (int *******)0x1;
      (**(code **)(local_390 + -0x7ec8))();
    }
    pppppppiVar14 = (int *******)0x8;
    if (ppppppiVar19[0x37] != (int *****)0xffffffff) {
      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x28d8);
      iVar16 = (**(code **)(local_390 + -0x7e10))();
      if ((iVar16 < 1) && (piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))(), *piVar3 != 0xb)) {
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x341c);
        FUN_00020df0(ppppppiVar19);
      }
    }
    goto LAB_0001bd0c;
  }
  if (ppppppiVar9 == (int ******)0x13) goto LAB_0001bdfc;
  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);
  unaff_s7 = (int *******)ppppppiVar19[0x3c];
  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {
    ppppppiVar4 = (int ******)ppppppiVar19[0x37];
    pppppppiVar23 = unaff_s6;
    if (pppppppiVar21 == (int *******)0x0) {
      local_380 = local_354;
      pppppppiVar13 = local_380;
      do {
        *pppppppiVar13 = (int ******)0x0;
        pppppppiVar13 = pppppppiVar13 + 1;
      } while (pppppppiVar13 != local_2d4);
      pppppppiVar15 = (int *******)0x400;
      iVar16 = FUN_00022130(ppppppiVar4,local_380,0);
      if (iVar16 == 0) goto LAB_0001c364;
      pppppppiVar15 = (int *******)0x0;
      local_398 = (int *******)0x0;
      pppppppiVar13 = local_380;
      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)ppppppiVar19[0x37] + 1,local_380,0);
      if (-1 < iVar16) goto LAB_0001c380;
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar14 = (int *******)*puVar8;
      if (pppppppiVar14 == (int *******)0x4) goto LAB_0001c13c;
      pppppppiVar23 = (int *******)pppppppiVar11[6];
      pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);
      pppppppiVar17 = pppppppiVar14;
      pppppppiVar21 = pppppppiVar23;
LAB_0001c18c:
      pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);
      FUN_00020df0(pppppppiVar23,pppppppiVar13,pppppppiVar14);
      ppppppiVar9 = pppppppiVar11[0x2d];
      goto joined_r0x0001bdcc;
    }
    pppppppiVar13 = (int *******)0x1;
    local_358 = 0x10000;
    local_35c = ppppppiVar4;
    iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,0xffffffff);
    if (iVar16 < 0) {
      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
      if (*piVar3 != 4) {
LAB_0001bd98:
        pppppppiVar17 = (int *******)pppppppiVar11[6];
        uVar5 = (**(code **)(local_390 + -0x7ddc))();
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);
        FUN_00020df0(pppppppiVar17,pppppppiVar13,uVar5);
        ppppppiVar9 = pppppppiVar11[0x2d];
        goto joined_r0x0001bdcc;
      }
LAB_0001c13c:
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    else {
LAB_0001c380:
      pppppppiVar13 = &local_368;
      (**(code **)(local_390 + -0x7d18))(ppppppiVar19[0x37],pppppppiVar13,8);
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    goto LAB_0001bc2c;
  }
  if (pppppppiVar23 != (int *******)0x0) {
    FUN_0001478c(pppppppiVar11);
    FUN_00015e38(pppppppiVar11);
  }
  ppppppiVar4 = pppppppiVar11[0x2e];
  pppppppiVar23 = (int *******)0x0;
  if ((ppppppiVar4 != (int ******)0x2) &&
     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar4 != (int ******)0x0)))) {
    if (0 < (int)unaff_s7) {
      iVar16 = FUN_0002186c();
      if ((int)unaff_s7 < iVar16 - (int)pppppppiVar11[0x25]) {
        unaff_s7 = (int *******)0x0;
      }
      else {
        unaff_s7 = (int *******)((int)unaff_s7 - (iVar16 - (int)pppppppiVar11[0x25]));
      }
      ppppppiVar4 = pppppppiVar11[0x2e];
      local_370 = unaff_s7;
      goto LAB_0001bc90;
    }
    pppppppiVar14 = (int *******)0x0;
    if (pppppppiVar21 != (int *******)0x0) goto LAB_0001bc98;
LAB_0001be20:
    unaff_s6 = local_2d4;
    pppppppiVar6 = local_354;
    do {
      *pppppppiVar6 = (int ******)0x0;
      pppppppiVar6 = pppppppiVar6 + 1;
    } while (unaff_s6 != pppppppiVar6);
    unaff_s7 = local_254;
    pppppppiVar6 = unaff_s6;
    do {
      *pppppppiVar6 = (int ******)0x0;
      pppppppiVar6 = pppppppiVar6 + 1;
      pppppppiVar7 = unaff_s7;
    } while (unaff_s7 != pppppppiVar6);
    do {
      *pppppppiVar7 = (int ******)0x0;
      pppppppiVar7 = pppppppiVar7 + 1;
    } while (local_1d4 != pppppppiVar7);
    local_378 = -1;
    if (ppppppiVar4 == (int ******)0x1) {
      pppppppiVar15 = (int *******)0x400;
      local_380 = pppppppiVar14;
      local_37c = local_354;
      iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&local_378);
      if (iVar16 == 0) goto LAB_0001c364;
LAB_0001c1ec:
      iVar16 = local_378 + 1;
      pppppppiVar6 = local_37c;
      pppppppiVar14 = local_380;
    }
    else if (ppppppiVar4 == (int ******)0x0) {
      pppppppiVar15 = (int *******)0x400;
      local_380 = local_354;
      local_37c = pppppppiVar14;
      iVar16 = FUN_00022130(pppppppiVar11[0x29],local_354,&local_378);
      if (iVar16 == 0) goto LAB_0001c364;
      iVar16 = local_378 + 1;
      pppppppiVar6 = local_380;
      pppppppiVar14 = local_37c;
    }
    else {
      if (ppppppiVar4 == (int ******)0x2) {
        pppppppiVar15 = (int *******)0x400;
        local_380 = pppppppiVar14;
        local_37c = local_354;
        iVar16 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&local_378);
        if (iVar16 != 0) goto LAB_0001c1ec;
LAB_0001c364:
        pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x348c);
        FUN_00020df0(pppppppiVar11[6]);
        goto LAB_0001bcc4;
      }
      iVar16 = 0;
      pppppppiVar6 = local_354;
      if (ppppppiVar4 == (int ******)0x3) goto LAB_0001bcc4;
    }
    pppppppiVar13 = pppppppiVar6;
    pppppppiVar15 = unaff_s7;
    local_398 = pppppppiVar14;
    iVar16 = (**(code **)(local_390 + -0x7d6c))(iVar16,pppppppiVar13,unaff_s6);
    if (iVar16 < 0) {
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar14 = (int *******)*puVar8;
      unaff_s6 = pppppppiVar14;
      if (pppppppiVar14 != (int *******)0x4) {
        pppppppiVar23 = (int *******)pppppppiVar11[6];
        pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar14);
        pppppppiVar17 = pppppppiVar23;
        goto LAB_0001c18c;
      }
LAB_0001c1b0:
      ppppppiVar9 = pppppppiVar11[0x2d];
    }
    else {
      iVar16 = (**(code **)(local_390 + -0x7d84))(pppppppiVar11[0x29]);
      unaff_s6 = (int *******)
                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_354[iVar16]) != 0);
      iVar16 = (**(code **)(local_390 + -0x7d84))();
      unaff_s7 = (int *******)
                 (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_2d4[iVar16]) != 0);
      iVar16 = (**(code **)(local_390 + -0x7d84))();
      pppppppiVar15 =
           (int *******)
           (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)local_254[iVar16]) != 0);
      pppppppiVar13 = unaff_s6;
      pppppppiVar14 = unaff_s7;
      iVar16 = FUN_0001868c(pppppppiVar11);
      if (iVar16 == 0) goto LAB_0001bcc4;
      ppppppiVar9 = pppppppiVar11[0x2d];
      if (ppppppiVar9 == (int ******)0x14) goto LAB_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  local_370 = (int *******)0x0;
LAB_0001bc90:
  local_36c = 0;
  pppppppiVar14 = (int *******)&local_370;
  if (pppppppiVar21 == (int *******)0x0) goto LAB_0001be20;
LAB_0001bc98:
  local_35c = pppppppiVar11[0x29];
  local_358 = 0;
  if (ppppppiVar4 != (int ******)0x1) {
    if (ppppppiVar4 == (int ******)0x0) {
      local_358 = 0x30000;
      goto LAB_0001bd54;
    }
    if (ppppppiVar4 == (int ******)0x2) {
      local_358 = 0x20000;
      goto LAB_0001bd54;
    }
    if (ppppppiVar4 != (int ******)0x3) goto LAB_0001bd54;
    goto LAB_0001bcc4;
  }
  local_358 = 0x60000;
LAB_0001bd54:
  if (pppppppiVar14 == (int *******)0x0) {
    iVar16 = -1;
  }
  else {
    iVar16 = (int)local_370 * 1000;
  }
  pppppppiVar13 = (int *******)0x1;
  iVar16 = (**(code **)(local_390 + -0x7dac))(ppppppiVar26,1,iVar16);
  if (iVar16 < 0) {
    piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
    if (*piVar3 != 4) goto LAB_0001bd98;
    goto LAB_0001c1b0;
  }
  pppppppiVar14 = (int *******)((local_358 << 0x1d) >> 0x1f);
  pppppppiVar15 = (int *******)(uint)((local_358 & 0xba) != 0);
  pppppppiVar13 = (int *******)((int)local_358._2_2_ & 1);
  iVar16 = FUN_0001868c(pppppppiVar11);
  if (iVar16 == 0) goto LAB_0001bcc4;
  ppppppiVar9 = pppppppiVar11[0x2d];
  if (ppppppiVar9 != (int ******)0x14) goto LAB_0001bc2c;
LAB_0001c01c:
  if ((ppppppiVar19[0x12] != (int *****)0x0) &&
     (pppppppiVar15 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {
    pppppppiVar14 = pppppppiVar11 + 0xb;
    pppppppiVar13 = pppppppiVar11;
    (*(code *)ppppppiVar19[0x12])(ppppppiVar19[0x13]);
  }
  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;
  unaff_s6 = (int *******)pppppppiVar11[0x38];
  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {
    uVar22 = *(undefined4 *)(local_390 + -0x7fac);
    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7e20);
    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fac) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = local_1d4;
        pppppppiVar23 = unaff_s7;
        if ((((unaff_s6[8] == (int ******)0x0) &&
             (pppppppiVar24 = local_154, unaff_s6[9] == (int ******)0x0)) &&
            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))
        goto LAB_0001c074;
        do {
          pppppppiVar24 = local_154;
          *pppppppiVar23 = (int ******)0x0;
          pppppppiVar23 = pppppppiVar23 + 1;
          pppppppiVar17 = local_d4;
          pppppppiVar13 = pppppppiVar24;
        } while (pppppppiVar24 != pppppppiVar23);
        do {
          *pppppppiVar13 = (int ******)0x0;
          pppppppiVar13 = pppppppiVar13 + 1;
          pppppppiVar23 = pppppppiVar17;
        } while (pppppppiVar17 != pppppppiVar13);
        do {
          *pppppppiVar23 = (int ******)0x0;
          pppppppiVar23 = pppppppiVar23 + 1;
          ppppppiVar26 = (int ******)0xffffffff;
        } while (pppppppiVar23 != &local_54);
        local_394 = 0x400;
        local_398 = &local_374;
        local_374 = (int ******)0xffffffff;
        pppppppiVar14 = pppppppiVar24;
        pppppppiVar15 = pppppppiVar17;
        iVar16 = FUN_00017e20(unaff_s6,unaff_s7);
        if (iVar16 == 0) {
          pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3434);
          FUN_00020df0(pppppppiVar11[6]);
          goto LAB_0001c074;
        }
        if (local_374 != (int ******)0xffffffff) break;
LAB_0001c4bc:
        pppppppiVar15 = pppppppiVar17;
        FUN_00018420(unaff_s6);
        FUN_00018878(unaff_s6);
        pppppppiVar13 = unaff_s7;
        pppppppiVar14 = pppppppiVar24;
      }
      local_398 = (int *******)0x0;
      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&
         (local_398 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {
        local_398 = &local_368;
        local_368 = (int ******)0x0;
        local_364 = 0;
      }
      pppppppiVar13 = unaff_s7;
      pppppppiVar14 = pppppppiVar24;
      pppppppiVar15 = pppppppiVar17;
      iVar16 = (**(code **)(local_390 + -0x7d6c))((int)local_374 + 1);
      if (-1 < iVar16) goto LAB_0001c4bc;
      puVar8 = (undefined4 *)(**(code **)(local_390 + -0x7e2c))();
      pppppppiVar17 = (int *******)*puVar8;
    } while (pppppppiVar17 == (int *******)0x4);
    ppppppiVar19 = pppppppiVar11[6];
    pppppppiVar15 = (int *******)(**(code **)(local_390 + -0x7ddc))(pppppppiVar17);
    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3470);
    pppppppiVar14 = pppppppiVar17;
    FUN_00020df0(ppppppiVar19);
  }
  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {
    pppppppiVar13 = local_d4;
    local_d4[1] = (int ******)0x0;
    pppppppiVar21 = (int *******)(*(int *)(local_390 + -0x7fd8) + 0x7b40);
    local_d4[3] = (int ******)0x0;
    ppppppiVar19 = (int ******)(*(int *)(local_390 + -0x7fd8) + 0x7c40);
    uVar22 = *(undefined4 *)(local_390 + -0x7fac);
    local_d4[0] = (int ******)(*unaff_s6)[0x29];
    local_d4[2] = unaff_s6[0x10];
    do {
      while( true ) {
        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&
           ((unaff_s6[10] == (int ******)0x0 &&
            (pppppppiVar17 = pppppppiVar13, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;
        FUN_00017b40(unaff_s6);
        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {
          pppppppiVar14 = (int *******)0xffffffff;
        }
        else {
          pppppppiVar14 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);
        }
        iVar16 = (**(code **)(local_390 + -0x7dac))(pppppppiVar13,2);
        if (iVar16 < 0) break;
        FUN_00017c40(unaff_s6,pppppppiVar13);
        FUN_00018878();
      }
      piVar3 = (int *)(**(code **)(local_390 + -0x7e2c))();
    } while (*piVar3 == 4);
    pppppppiVar17 = (int *******)pppppppiVar11[6];
    pppppppiVar14 = (int *******)(**(code **)(local_390 + -0x7ddc))();
    pppppppiVar13 = (int *******)(*(int *)(local_390 + -0x7fd4) + -0x3450);
    FUN_00020df0(pppppppiVar17);
  }
LAB_0001c074:
  FUN_00014600(pppppppiVar11);
  pcVar30 = *(code **)(local_390 + -0x7df4);
  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;
  (*pcVar30)(pppppppiVar11);
LAB_0001bd0c:
  if (local_54 == (int ******)*local_384) {
    return 0;
  }
  pcVar30 = *(code **)(local_390 + -0x7d78);
  pcVar31 = FUN_0001c688;
  ppppppiVar4 = local_54;
  (*pcVar30)();
  piVar3 = *(int **)(pcVar30 + 0x22c64);
  iStack_3d4 = *piVar3;
  *(undefined1 *)(ppppppiVar4 + 0x39) = 0;
  pppppppiStack_3d0 = pppppppiVar17;
  ppppppiStack_3cc = ppppppiVar19;
  pppppppiStack_3c8 = pppppppiVar21;
  uStack_3c4 = uVar22;
  pppppppiStack_3c0 = pppppppiVar24;
  ppppppiStack_3bc = ppppppiVar26;
  pppppppiStack_3b8 = unaff_s6;
  pppppppiStack_3b4 = unaff_s7;
  pppppppiStack_3b0 = pppppppiVar11;
  pcStack_3ac = pcVar31;
  if (ppppppiVar4[0x37] != (int *****)0xffffffff) {
    iVar16 = (**(code **)(pcVar30 + 0x22c24))();
    pppppiVar12 = ppppppiVar4[0x37];
    if ((int)pppppiVar12 < 0) {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
      pcVar31 = *(code **)(pcVar30 + 0x22c90);
    }
    else {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
      pcVar31 = *(code **)(pcVar30 + 0x22c90);
    }
    if (uVar10 != 0) {
      (*pcVar31)(pppppiVar12,auStack_3e0,8);
    }
  }
  pppppiVar12 = ppppppiVar4[0x31];
  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar4 + 0xe1) == '\0')) {
    iVar16 = (**(code **)(pcVar30 + 0x22c24))(pppppiVar12);
    if ((int)pppppiVar12 < 0) {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
    }
    else {
      uVar10 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar13[iVar16];
    }
    if (uVar10 != 0) {
      FUN_0001afec(ppppppiVar4);
    }
  }
  if ((((uint)ppppppiVar4[0x3e] & 4) == 0) && (ppppppiVar4[3] != (int *****)0x0)) {
    iVar16 = *(int *)(pcVar30 + 0x229fc);
    pppppiVar12 = ppppppiVar4[3];
    do {
      ppppiVar27 = pppppiVar12[0x29];
      pppppiVar18 = (int *****)pppppiVar12[3];
      if (ppppiVar27 != (int ****)0xffffffff) {
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        unaff_s7 = (int *******)(1 << ((uint)ppppiVar27 & 0x1f));
        ppppppiVar9 = pppppppiVar13[iVar2];
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        ppppppiVar19 = pppppppiVar14[iVar2];
        iVar2 = (**(code **)(pcVar30 + 0x22c24))(ppppiVar27);
        (*(code *)(iVar16 + -0x7974))
                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar9) != 0,
                   ((uint)unaff_s7 & (uint)ppppppiVar19) != 0,
                   ((uint)unaff_s7 & (uint)pppppppiVar15[iVar2]) != 0);
      }
      pppppiVar12 = pppppiVar18;
    } while (pppppiVar18 != (int *****)0x0);
  }
  if (ppppppiVar4[0x42] != (int *****)0x0) {
    unaff_s7 = (int *******)0x1;
    pppppiVar12 = ppppppiVar4[0x42];
    do {
      pppppiVar18 = (int *****)pppppiVar12[2];
      FUN_00018420(pppppiVar12,pppppppiVar13,pppppppiVar14,pppppppiVar15);
      FUN_00018878(pppppiVar12);
      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&
          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {
        FUN_00014600(*pppppiVar12);
        pcVar31 = *(code **)(pcVar30 + 0x22bb4);
        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;
        (*pcVar31)(*pppppiVar12);
      }
      pppppiVar12 = pppppiVar18;
    } while (pppppiVar18 != (int *****)0x0);
  }
  FUN_0001ab80(ppppppiVar4);
  if (iStack_3d4 == *piVar3) {
    return 1;
  }
  pcVar30 = *(code **)(pcVar30 + 0x22c30);
  iVar16 = iStack_3d4;
  (*pcVar30)();
  uVar29 = *(uint *)(iVar16 + 0xf8);
  uVar28 = uVar29 & 4;
  pppppppiVar23 = (int *******)(uVar29 & 0x8000);
  uVar10 = uVar29;
  if (*(undefined4 **)(iVar16 + 0x108) != (undefined4 *)0x0) {
    unaff_s7 = (int *******)0x1;
    puVar8 = *(undefined4 **)(iVar16 + 0x108);
    do {
      puVar20 = (undefined4 *)puVar8[2];
      FUN_00018878(puVar8);
      FUN_00014600(*puVar8);
      *(undefined1 *)((int)puVar8 + 0x51) = 1;
      (**(code **)(pcVar30 + 0x22818))(*puVar8);
      puVar8 = puVar20;
    } while (puVar20 != (undefined4 *)0x0);
    pppppppiVar13 = (int *******)0x0;
    uVar10 = *(uint *)(iVar16 + 0xf8);
  }
  if ((uVar10 & 0x2000) != 0) {
    *(undefined1 *)(iVar16 + 0xe3) = 1;
    FUN_00018028(iVar16);
  }
  iVar25 = iVar16 + 0xac;
  iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);
  uVar22 = 0x191e;
  if (iVar2 != 0) goto LAB_0001cf0c;
  if (pppppppiVar23 == (int *******)0x0) goto LAB_0001cb94;
  ppppppiVar4 = *(int *******)(iVar16 + 0x14);
  if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cba0;
  pppppiVar12 = ppppppiVar4[0x38];
  uVar29 = uVar29 & 2;
  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;
  pppppppiVar13 = (int *******)0x1;
  unaff_s7 = (int *******)(*(int *)(pcVar30 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (uVar29 == 0) goto LAB_0001cd7c;
  if (uVar28 == 0) {
    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
    *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
    goto LAB_0001cd9c;
  }
  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {
    (**(code **)(pcVar30 + 0x22744))(pppppiVar12[0xd],2);
    goto LAB_0001cb54;
  }
  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
LAB_0001cb4c:
  *(char *)(ppppppiVar4 + 0x3f) = (char)pppppppiVar13;
  *(char *)(iVar16 + 0xe3) = (char)pppppppiVar13;
LAB_0001cb54:
  ppppppiVar4 = (int ******)ppppppiVar4[3];
  if (ppppppiVar4 != (int ******)0x0) {
    pppppiVar12 = ppppppiVar4[0x38];
    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar22 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,
                 *(int *)(pcVar30 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar22 = 0x1948;
    } while (*(int *)(iVar16 + 0x10) != 0);
  }
LAB_0001cba0:
  ppppppiVar4 = *(int *******)(iVar16 + 0xc);
  pcVar31 = *(code **)(pcVar30 + 0x22918);
  if (ppppppiVar4 != (int ******)0x0) {
    do {
      (**(code **)(pcVar30 + 0x22744))(ppppppiVar4[0x29],2);
      ppppppiVar4 = (int ******)ppppppiVar4[3];
    } while (ppppppiVar4 != (int ******)0x0);
    pcVar31 = *(code **)(pcVar30 + 0x22918);
    ppppppiVar4 = (int ******)0x0;
    if ((uVar28 != 0) &&
       (ppppppiVar4 = *(int *******)(iVar16 + 0xc), ppppppiVar4 != (int ******)0x0)) {
      pppppppiVar13 = (int *******)0x1;
      do {
        while (pcVar31 = *(code **)(pcVar30 + 0x22918), *(char *)((int)ppppppiVar4 + 0xaa) != '\0')
        {
          ppppppiVar4 = (int ******)ppppppiVar4[3];
          if (ppppppiVar4 == (int ******)0x0) goto LAB_0001cc48;
        }
        iVar2 = (*pcVar31)(iVar25);
        if (iVar2 != 0) {
          uVar22 = 0x195e;
          goto LAB_0001cd58;
        }
        iVar2 = (**(code **)(pcVar30 + 0x2277c))(ppppppiVar4[0x16],0);
        if (iVar2 != 0) goto LAB_0001cf30;
        iVar2 = (**(code **)(pcVar30 + 0x22884))(iVar25);
        if (iVar2 != 0) {
          uVar22 = 0x1961;
          goto LAB_0001cf0c;
        }
        *(undefined1 *)((int)ppppppiVar4 + 0xaa) = 1;
        ppppppiVar4 = *(int *******)(iVar16 + 0xc);
        pcVar31 = *(code **)(pcVar30 + 0x22918);
      } while (ppppppiVar4 != (int ******)0x0);
    }
  }
LAB_0001cc48:
  iVar2 = (*pcVar31)(iVar25);
  if (iVar2 == 0) {
    if (pppppppiVar23 != (int *******)0x0) {
      *(undefined1 *)(iVar16 + 0xe3) = 1;
      FUN_00018028(iVar16);
    }
    do {
      ppppppiVar4 = *(int *******)(iVar16 + 0xc);
      while( true ) {
        if (ppppppiVar4 == (int ******)0x0) {
          iVar16 = FUN_0001ab80(iVar16);
          return iVar16;
        }
        if (((*(uint *)(iVar16 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar4 + 0xaa) == '\0'))
        goto LAB_0001cf30;
        pppppppiVar13 = (int *******)ppppppiVar4[6];
        if (((uint)pppppppiVar13[0x3e] & 4) == 0) break;
        FUN_000140b4(ppppppiVar4);
        ppppppiVar4 = *(int *******)(iVar16 + 0xc);
      }
      pppppppiVar23 = pppppppiVar13 + 0x2b;
      FUN_00014148(ppppppiVar4,3);
      iVar2 = (**(code **)(pcVar30 + 0x22884))(pppppppiVar23);
      if (iVar2 != 0) {
        do {
          uVar22 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0,
                     uVar22,*(int *)(pcVar30 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                    (**(undefined4 **)(pcVar30 + 0x22644),*(int *)(pcVar30 + 0x22638) + -0x40a0);
        } while( true );
      }
      pppppiVar12 = ppppppiVar4[5];
      ppppppiVar9 = (int ******)ppppppiVar4[4];
      if ((int ******)ppppppiVar4[0x26] == pppppppiVar13[0x3c]) {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar13[0xc] = ppppppiVar9;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar9;
        }
        pppppiVar12 = ppppppiVar4[4];
        ppppppiVar9 = (int ******)ppppppiVar4[5];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;
        pppppppiVar13[0xd] = ppppppiVar9;
LAB_0001ccf4:
        pppppiVar12 = ppppppiVar4[3];
        ppppppiVar9 = (int ******)ppppppiVar4[2];
        ppppppiVar4[4] = (int *****)0x0;
        ppppppiVar4[5] = (int *****)0x0;
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        pppppppiVar13[2] = ppppppiVar9;
        pppppiVar12 = ppppppiVar4[2];
        ppppppiVar9 = (int ******)ppppppiVar4[3];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        pppppppiVar13[3] = ppppppiVar9;
        ppppppiVar4[2] = (int *****)0x0;
        ppppppiVar4[3] = (int *****)0x0;
        ppppppiVar9 = pppppppiVar13[6];
        ppppppiVar4[2] = (int *****)ppppppiVar9;
        if (pppppppiVar13[7] != (int ******)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        pppppppiVar13[7] = ppppppiVar4;
      }
      else {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar13[0xe] = ppppppiVar9;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar9;
        }
        pppppiVar12 = ppppppiVar4[4];
        ppppppiVar9 = (int ******)ppppppiVar4[5];
        if (pppppiVar12 != (int *****)0x0) {
LAB_0001ccf0:
          pppppiVar12[5] = (int ****)ppppppiVar9;
          goto LAB_0001ccf4;
        }
        pppppppiVar13[0xf] = ppppppiVar9;
        ppppppiVar4[4] = (int *****)0x0;
        ppppppiVar4[5] = (int *****)0x0;
        pppppiVar12 = ppppppiVar4[3];
        ppppppiVar9 = (int ******)ppppppiVar4[2];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pppppiVar12[2] = (int ****)ppppppiVar9;
        pppppiVar12 = ppppppiVar4[2];
        ppppppiVar9 = (int ******)ppppppiVar4[3];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pppppiVar12[3] = (int ****)ppppppiVar9;
        ppppppiVar4[2] = (int *****)0x0;
        ppppppiVar4[3] = (int *****)0x0;
        ppppppiVar9 = pppppppiVar13[6];
        ppppppiVar4[2] = (int *****)ppppppiVar9;
        if (pppppppiVar13[7] == (int ******)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        ppppppiVar9[3] = (int *****)ppppppiVar4;
      }
      pcVar31 = *(code **)(pcVar30 + 0x22918);
      pppppppiVar13[6] = ppppppiVar4;
      iVar2 = (*pcVar31)(pppppppiVar23);
    } while (iVar2 == 0);
    uVar22 = 0x11dd;
  }
  else {
    uVar22 = 0x196b;
  }
LAB_0001cd58:
  pppppiVar12 = (int *****)
                (*(code *)**(undefined4 **)(pcVar30 + 0x2264c))
                          (**(undefined4 **)(pcVar30 + 0x22644),
                           *(int *)(pcVar30 + 0x22638) + -0x40a0,uVar22,
                           *(int *)(pcVar30 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (*(char *)(pppppiVar12 + 0x14) == '\0') {
LAB_0001cdb0:
    FUN_00020df0(iVar16,unaff_s7);
  }
  *(char *)(ppppppiVar4[0x38] + 0x14) = (char)pppppppiVar13;
  if (uVar28 == 0) {
LAB_0001cd9c:
    FUN_00014600(ppppppiVar4);
  }
  goto LAB_0001cb4c;
}

