
/* 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_ip_count_lock(MHD_Daemon *daemon)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 *puVar4;
  MemoryPool *pMVar5;
  sockaddr *psVar6;
  time_t tVar7;
  MHD_Connection *pMVar8;
  MHD_FLAG MVar9;
  MHD_Connection *pMVar10;
  MHD_Connection *extraout_v1;
  int iVar11;
  MHD_thread_ID_ MVar12;
  MHD_Daemon *pMVar13;
  MHD_Daemon *pMVar14;
  uint uVar15;
  socklen_t sVar16;
  sockaddr *addr;
  undefined4 uVar17;
  MHD_Daemon *pMVar18;
  int *piVar19;
  int *piVar20;
  MHD_IPCount *unaff_s2;
  MHD_Daemon *unaff_s3;
  int unaff_s4;
  MHD_mutex_ *pMVar21;
  MHD_Daemon *unaff_s5;
  uint uVar22;
  code *pcVar23;
  code *pcVar24;
  MHD_Connection *unaff_s8;
  undefined4 auStack_d0 [2];
  MHD_Connection *pMStack_c8;
  int iStack_bc;
  int iStack_b8;
  int *piStack_b4;
  MHD_IPCount *pMStack_b0;
  MHD_Daemon *pMStack_ac;
  int iStack_a8;
  _Bool _Stack_79;
  MHD_IPCount MStack_74;
  int iStack_5c;
  
  pcVar23 = *(code **)PTR_mhd_panic_0003f070;
  (*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,
             PTR_DAT_0003f05c + -0x51e0);
  sVar16 = 0x128;
  iVar11 = **(int **)(pcVar23 + 0x25460);
  pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468);
  pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0);
  (*pcVar24)();
  piVar19 = *(int **)(pcVar24 + 0x256a4);
  iStack_5c = *piVar19;
  iVar3 = *(int *)(iVar11 + 0x70);
  while (iVar1 = iVar3, iVar1 != 0) {
    iVar11 = iVar1;
    iVar3 = *(int *)(iVar1 + 0x70);
  }
  if (*(int *)(iVar11 + 0xf4) == 0) {
LAB_00019cac:
    if (iStack_5c == *piVar19) {
      return;
    }
LAB_00019dc0:
    (**(code **)(pcVar24 + 0x25670))();
LAB_00019dcc:
    MHD_ip_count_lock(pMVar14);
  }
  else {
    unaff_s2 = &MStack_74;
    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);
    if (iVar3 == 0) goto LAB_00019cac;
    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);
    pMVar14 = unaff_s3;
    iVar3 = (**(code **)(pcVar24 + 0x25660))();
    if (iVar3 != 0) goto LAB_00019dcc;
    unaff_s4 = *(int *)(pcVar24 + 0x2543c);
    iVar11 = iVar11 + 0x78;
    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);
    if (puVar4 != (undefined4 *)0x0) {
      unaff_s2 = (MHD_IPCount *)*puVar4;
      uVar15 = unaff_s2->count - 1;
      if (unaff_s2->count != 0) {
        unaff_s2->count = uVar15;
        if (uVar15 == 0) goto LAB_00019d6c;
        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {
          MHD_ip_count_unlock(pMVar14);
LAB_00019d6c:
          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);
          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);
        }
        goto LAB_00019cac;
      }
      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);
      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))
                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,
                 *(int *)(pcVar24 + 0x25414) + -0x3984);
      goto LAB_00019dc0;
    }
  }
  addr = (sockaddr *)0x1dc;
  pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);
  sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0;
  pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428);
  uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0;
  (*pcVar23)();
  piVar20 = *(int **)(pcVar23 + 0x254e8);
  uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff;
  pMVar21 = (MHD_mutex_ *)(uint)_Stack_79;
  iStack_bc = *piVar20;
  iStack_b8 = iVar11;
  piStack_b4 = piVar19;
  pMStack_b0 = unaff_s2;
  pMStack_ac = unaff_s3;
  iStack_a8 = unaff_s4;
  if ((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {
    uVar22 = pMVar14->worker_pool_size;
    if (uVar22 != 0) {
      if (uVar22 == 0) {
        trap(7);
      }
      pMVar13 = pMVar18 + uVar15 % uVar22;
      if (pMVar13->connection_limit <= pMVar13->connections) {
        uVar2 = uVar15;
        do {
          uVar2 = uVar2 + 1;
          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;
          if (uVar22 == 0) {
            trap(7);
          }
          pMVar13 = pMVar18 + uVar2 % uVar22;
        } while (pMVar13->connection_limit <= pMVar13->connections);
      }
      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {
      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);
      goto LAB_0001aa44;
    }
    goto LAB_0001a1dc;
  }
  if ((0x3ff < (int)uVar15) &&
     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),
     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;
  unaff_s5 = pMVar14;
  if (pMVar14->connections == pMVar14->connection_limit) {
LAB_0001a190:
    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;
LAB_0001a1dc:
    unaff_s5 = (MHD_Daemon *)0x0;
    *piVar19 = 0x17;
    goto LAB_0001a1e8;
  }
  pMVar18 = pMVar14->master;
  while (pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0) {
    unaff_s5 = pMVar13;
    pMVar18 = pMVar13->master;
  }
  if (unaff_s5->per_ip_connection_limit != 0) {
    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);
    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;
    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);
    if (iVar3 != 0) {
      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;
      pMVar18 = pMVar13;
      iVar3 = (**(code **)(pcVar23 + 0x254a4))();
      if (iVar3 != 0) goto LAB_0001ab68;
      puVar4 = (undefined4 *)
               (**(code **)(pcVar23 + 0x25410))
                         (unaff_s8,&unaff_s5->per_ip_connection_count,
                          *(int *)(pcVar23 + 0x25280) + -0x7054);
      if (puVar4 == (undefined4 *)0x0) {
        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);
        MHD_DLOG(unaff_s5,(char *)pMVar8);
        iVar3 = (**(code **)(pcVar23 + 0x25538))();
        if (iVar3 == 0) {
          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        pMVar8 = (MHD_Connection *)*puVar4;
        if (unaff_s8 != pMVar8) {
          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
        }
        pcVar24 = *(code **)(pcVar23 + 0x25538);
        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {
          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);
          iVar3 = (*pcVar24)();
          if (iVar3 == 0) goto LAB_00019f70;
        }
        else {
          iVar3 = (*pcVar24)();
          if (iVar3 == 0) goto LAB_0001a190;
        }
      }
      MHD_ip_count_unlock(pMVar13);
LAB_0001a2ec:
      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);
      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;
      unaff_s5 = (MHD_Daemon *)0x0;
      *piVar19 = 0x16;
      goto LAB_0001a1e8;
    }
    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
  }
LAB_00019f70:
  if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&
     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),
     unaff_s5 == (MHD_Daemon *)0x0)) {
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    if (iVar3 != 0) {
      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
      uVar17 = 0x950;
      if (*piVar19 == 9) goto LAB_0001aa40;
    }
    MHD_ip_limit_del(pMVar14,addr,sVar16);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100);
  if (unaff_s8 == (MHD_Connection *)0x0) {
    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
    pMVar21 = (MHD_mutex_ *)*piVar19;
    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);
    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(pMVar14,addr,sVar16);
    *piVar19 = (int)pMVar21;
    goto LAB_0001a1e8;
  }
  pMVar5 = MHD_pool_create(pMVar14->pool_size);
  unaff_s8->pool = pMVar5;
  if (pMVar5 == (MemoryPool *)0x0) {
    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();
    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);
    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(pMVar14,addr,sVar16);
    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
    (pMVar21->__data).__lock = 0xc;
    goto LAB_0001a1e8;
  }
  pcVar24 = *(code **)(pcVar23 + 0x25458);
  unaff_s8->connection_timeout = pMVar14->connection_timeout;
  psVar6 = (sockaddr *)(*pcVar24)(sVar16);
  unaff_s8->addr = psVar6;
  if (psVar6 == (sockaddr *)0x0) {
    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
    pMVar21 = (MHD_mutex_ *)*piVar19;
    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);
    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(pMVar14,addr,sVar16);
    MHD_pool_destroy(unaff_s8->pool);
    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
    *piVar19 = (int)pMVar21;
    goto LAB_0001a1e8;
  }
  (**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16);
  unaff_s8->addr_len = sVar16;
  unaff_s8->socket_fd = uVar15;
  unaff_s8->sk_nonblck = _Stack_79;
  unaff_s8->daemon = pMVar14;
  tVar7 = MHD_monotonic_sec_counter();
  MVar9 = pMVar14->options;
  unaff_s8->last_activity = tVar7;
  if ((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG) {
    MHD_set_http_callbacks_(unaff_s8);
LAB_0001a03c:
    pMVar21 = &pMVar14->cleanup_connection_mutex;
    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);
    uVar17 = 0x9e4;
    if (iVar3 != 0) goto LAB_0001ab44;
    if (pMVar14->connections < pMVar14->connection_limit) {
      pMVar14->connections = pMVar14->connections + 1;
      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
        pMVar8 = pMVar14->normal_timeout_head;
        pMVar10 = pMVar14->normal_timeout_tail;
        unaff_s8->prevX = (MHD_Connection *)0x0;
        unaff_s8->nextX = pMVar8;
        if (pMVar10 == (MHD_Connection *)0x0) {
          pMVar14->normal_timeout_tail = unaff_s8;
        }
        else {
          pMVar8->prevX = unaff_s8;
        }
        pMVar14->normal_timeout_head = unaff_s8;
      }
      pMVar8 = pMVar14->connections_head;
      pMVar10 = pMVar14->connections_tail;
      unaff_s8->prev = (MHD_Connection *)0x0;
      unaff_s8->next = pMVar8;
      if (pMVar10 == (MHD_Connection *)0x0) {
        pMVar14->connections_tail = unaff_s8;
      }
      else {
        pMVar8->prev = unaff_s8;
      }
      pcVar24 = *(code **)(pcVar23 + 0x25538);
      pMVar14->connections_head = unaff_s8;
      iVar3 = (*pcVar24)(pMVar21);
      uVar17 = 0xa01;
      if (iVar3 != 0) goto LAB_0001ab1c;
      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {
        (*pMVar14->notify_connection)
                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,
                   MHD_CONNECTION_NOTIFY_STARTED);
      }
      MVar9 = pMVar14->options;
      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
        MVar12 = (pMVar14->pid).ID;
        (unaff_s8->pid).handle = (pMVar14->pid).handle;
        (unaff_s8->pid).ID = MVar12;
        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {
LAB_0001a9b8:
          unaff_s5 = (MHD_Daemon *)0x1;
          if (uVar22 == 0) goto LAB_0001a1e8;
          iVar3 = (pMVar14->itc).fd;
          if (iVar3 == -1) goto LAB_0001a1e8;
          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);
          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))
          {
            unaff_s5 = (MHD_Daemon *)0x1;
            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = (MHD_Daemon *)0x1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar3 = MHD_create_named_thread_
                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),
                           pMVar14->thread_stack_size,
                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),
                           unaff_s8);
        if (iVar3 == 0) {
          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
          unaff_s5 = (MHD_Daemon *)*piVar19;
          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);
          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);
          goto LAB_0001a72c;
        }
        MVar9 = pMVar14->options;
        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {
          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {
        pcVar24 = *(code **)(pcVar23 + 0x25474);
      }
      else {
        pcVar24 = *(code **)(pcVar23 + 0x25474);
        if (uVar22 == 0) {
          pMVar8 = pMVar14->eready_head;
          pMVar10 = pMVar14->eready_tail;
          unaff_s8->prevE = (MHD_Connection *)0x0;
          unaff_s8->epoll_state =
               unaff_s8->epoll_state |
               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|
               MHD_EPOLL_STATE_READ_READY);
          unaff_s8->nextE = pMVar8;
          if (pMVar10 == (MHD_Connection *)0x0) {
            pMVar14->eready_tail = unaff_s8;
            unaff_s5 = (MHD_Daemon *)0x1;
            pMVar14->eready_head = unaff_s8;
            goto LAB_0001a1e8;
          }
          pMVar8->prevE = unaff_s8;
          unaff_s5 = (MHD_Daemon *)0x1;
          pMVar14->eready_head = unaff_s8;
          goto LAB_0001a1e8;
        }
      }
      auStack_d0[0] = 0x80000007;
      pMStack_c8 = unaff_s8;
      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);
      if (iVar3 == 0) {
        unaff_s5 = (MHD_Daemon *)0x1;
        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;
        goto LAB_0001a1e8;
      }
      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
      unaff_s5 = (MHD_Daemon *)*piVar19;
      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);
      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);
      goto LAB_0001a72c;
    }
  }
  else {
    pMVar21 = (MHD_mutex_ *)0x1;
    unaff_s8->tls_state = MHD_TLS_CONN_INIT;
    MHD_set_https_callbacks(unaff_s8);
    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);
    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);
    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);
    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {
      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);
LAB_0001a950:
      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);
      if (pMVar14->https_mem_trust != (char *)0x0) {
        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);
      }
      goto LAB_0001a03c;
    }
    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {
      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);
      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);
      goto LAB_0001a950;
    }
    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));
    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {
      uVar17 = 0x9c3;
      goto LAB_0001aa40;
    }
    MHD_ip_limit_del(pMVar14,addr,sVar16);
    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);
    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))
              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,
               *(int *)(pcVar23 + 0x25258) + -0x383c);
  }
  iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21);
  uVar17 = 0x9ea;
  if (iVar3 != 0) goto LAB_0001ab1c;
  unaff_s5 = (MHD_Daemon *)0x17;
  MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea);
LAB_0001a72c:
  if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {
    (*pMVar14->notify_connection)
              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,
               MHD_CONNECTION_NOTIFY_CLOSED);
  }
  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {
    (**(code **)(pcVar23 + 0x25534))();
  }
  iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);
  if (iVar3 != 0) {
    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();
    uVar17 = 0xa56;
    if (*piVar19 == 9) goto LAB_0001aa40;
  }
  MHD_ip_limit_del(pMVar14,addr,sVar16);
  iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);
  if (iVar3 != 0) goto LAB_0001ab40;
  if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;
  pMVar8 = unaff_s8->nextX;
  if (unaff_s8->prevX == (MHD_Connection *)0x0) {
    pMVar14->normal_timeout_head = pMVar8;
    pMVar10 = (MHD_Connection *)0x0;
  }
  else {
    unaff_s8->prevX->nextX = pMVar8;
    pMVar8 = unaff_s8->nextX;
    pMVar10 = unaff_s8->prevX;
  }
  if (pMVar8 == (MHD_Connection *)0x0) goto LAB_0001aa64;
  pMVar8->prevX = pMVar10;
  do {
    unaff_s8->nextX = (MHD_Connection *)0x0;
    unaff_s8->prevX = (MHD_Connection *)0x0;
LAB_0001a804:
    pMVar8 = unaff_s8->next;
    if (unaff_s8->prev == (MHD_Connection *)0x0) {
      pMVar14->connections_head = pMVar8;
      pMVar10 = (MHD_Connection *)0x0;
    }
    else {
      unaff_s8->prev->next = pMVar8;
      pMVar8 = unaff_s8->next;
      pMVar10 = unaff_s8->prev;
    }
    if (pMVar8 == (MHD_Connection *)0x0) {
      pMVar14->connections_tail = pMVar10;
    }
    else {
      pMVar8->prev = pMVar10;
    }
    pcVar24 = *(code **)(pcVar23 + 0x25538);
    unaff_s8->next = (MHD_Connection *)0x0;
    unaff_s8->prev = (MHD_Connection *)0x0;
    iVar3 = (*pcVar24)(pMVar21);
    if (iVar3 == 0) {
      MHD_pool_destroy(unaff_s8->pool);
      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);
      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);
      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();
      if (unaff_s5 == (MHD_Daemon *)0x0) {
        *puVar4 = 0x16;
      }
      else {
        *puVar4 = unaff_s5;
        unaff_s5 = (MHD_Daemon *)0x0;
      }
LAB_0001a1e8:
      if (iStack_bc == *piVar20) {
        return;
      }
      (**(code **)(pcVar23 + 0x254b4))();
    }
    uVar17 = 0xa67;
LAB_0001ab1c:
    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))
              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,
               *(int *)(pcVar23 + 0x25258) + -0x51b8);
LAB_0001ab40:
    uVar17 = 0xa5b;
LAB_0001ab44:
    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);
    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))
              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,
               *(int *)(pcVar23 + 0x25258) + -0x51e0);
LAB_0001ab68:
    MHD_ip_count_lock(pMVar18);
LAB_0001ab78:
    uVar17 = 0x912;
LAB_0001aa40:
    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);
LAB_0001aa44:
    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))
              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,
               *(int *)(pcVar23 + 0x25258) + -0x3950);
    pMVar10 = extraout_v1;
LAB_0001aa64:
    pMVar14->normal_timeout_tail = pMVar10;
  } while( true );
}



int FUN_00019bc8(void)

{
  uint uVar1;
  undefined4 *puVar2;
  int extraout_v1;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  int *piVar10;
  int *piVar11;
  undefined1 *unaff_s2;
  int unaff_s3;
  int unaff_s4;
  int *piVar12;
  int unaff_s5;
  uint uVar13;
  code *pcVar14;
  code *pcVar15;
  int *unaff_s8;
  undefined4 auStack_d0 [2];
  int *piStack_c8;
  int iStack_bc;
  int iStack_b8;
  int *piStack_b4;
  undefined1 *puStack_b0;
  int iStack_ac;
  int iStack_a8;
  byte bStack_79;
  undefined1 auStack_74 [24];
  int iStack_5c;
  
  pcVar14 = *(code **)PTR_DAT_0003f070;
  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,
             PTR_DAT_0003f05c + -0x51e0);
  uVar8 = 0x128;
  iVar3 = **(int **)(pcVar14 + 0x25460);
  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);
  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;
  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);
  piVar10 = *(int **)(pcVar15 + 0x256a4);
  iStack_5c = *piVar10;
  iVar4 = *(int *)(iVar3 + 0x70);
  while (iVar5 = iVar4, iVar5 != 0) {
    iVar3 = iVar5;
    iVar4 = *(int *)(iVar5 + 0x70);
  }
  if (*(int *)(iVar3 + 0xf4) == 0) {
LAB_00019cac:
    if (iStack_5c == *piVar10) {
      return *piVar10;
    }
LAB_00019dc0:
    (**(code **)(pcVar15 + 0x25670))();
LAB_00019dcc:
    FUN_00019bc8();
  }
  else {
    unaff_s2 = auStack_74;
    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);
    if (iVar4 == 0) goto LAB_00019cac;
    unaff_s3 = iVar3 + 0x94;
    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);
    if (iVar4 != 0) goto LAB_00019dcc;
    unaff_s4 = *(int *)(pcVar15 + 0x2543c);
    iVar3 = iVar3 + 0x78;
    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);
    if (piVar12 != (int *)0x0) {
      unaff_s2 = (undefined1 *)*piVar12;
      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;
      if (*(int *)(unaff_s2 + 0x14) != 0) {
        *(int *)(unaff_s2 + 0x14) = iVar4;
        if (iVar4 == 0) goto LAB_00019d6c;
        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {
          FUN_00019c08();
LAB_00019d6c:
          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);
          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);
        }
        goto LAB_00019cac;
      }
      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))
                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,
                 *(int *)(pcVar15 + 0x25414) + -0x3984);
      goto LAB_00019dc0;
    }
  }
  uVar8 = 0x1dc;
  iVar4 = **(int **)(pcVar15 + 0x25420);
  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;
  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);
  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;
  (*pcVar14)(iVar4,uVar7,0x1dc);
  piVar11 = *(int **)(pcVar14 + 0x254e8);
  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;
  piVar12 = (int *)(uint)bStack_79;
  iStack_bc = *piVar11;
  iStack_b8 = iVar3;
  piStack_b4 = piVar10;
  puStack_b0 = unaff_s2;
  iStack_ac = unaff_s3;
  iStack_a8 = unaff_s4;
  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {
    uVar13 = *(uint *)(iVar4 + 0x88);
    if (uVar13 != 0) {
      if (uVar13 == 0) {
        trap(7);
      }
      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;
      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {
        uVar1 = uVar7;
        do {
          uVar1 = uVar1 + 1;
          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;
          if (uVar13 == 0) {
            trap(7);
          }
          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;
        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));
      }
      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {
      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);
      goto LAB_0001aa44;
    }
    goto LAB_0001a1dc;
  }
  if ((0x3ff < (int)uVar7) &&
     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))
  goto LAB_0001a2ec;
  unaff_s5 = iVar4;
  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {
LAB_0001a190:
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;
LAB_0001a1dc:
    unaff_s5 = 0;
    *piVar10 = 0x17;
    goto LAB_0001a1e8;
  }
  iVar3 = *(int *)(iVar4 + 0x70);
  while (iVar5 = iVar3, iVar5 != 0) {
    unaff_s5 = iVar5;
    iVar3 = *(int *)(iVar5 + 0x70);
  }
  if (*(int *)(unaff_s5 + 0xf4) != 0) {
    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);
    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;
    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);
    if (iVar3 != 0) {
      iVar3 = unaff_s5 + 0x94;
      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);
      if (iVar5 != 0) goto LAB_0001ab68;
      puVar2 = (undefined4 *)
               (**(code **)(pcVar14 + 0x25410))
                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);
      if (puVar2 == (undefined4 *)0x0) {
        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);
        FUN_00020df0(unaff_s5,piVar10);
        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);
        if (iVar3 == 0) {
          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        piVar10 = (int *)*puVar2;
        if (unaff_s8 != piVar10) {
          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
        }
        pcVar15 = *(code **)(pcVar14 + 0x25538);
        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {
          piVar10[5] = piVar10[5] + 1;
          iVar3 = (*pcVar15)(iVar3);
          if (iVar3 == 0) goto LAB_00019f70;
        }
        else {
          iVar3 = (*pcVar15)(iVar3);
          if (iVar3 == 0) goto LAB_0001a190;
        }
      }
      FUN_00019c08();
LAB_0001a2ec:
      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);
      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;
      unaff_s5 = 0;
      *piVar10 = 0x16;
      goto LAB_0001a1e8;
    }
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
  }
LAB_00019f70:
  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&
     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),
     unaff_s5 == 0)) {
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if (iVar3 != 0) {
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      uVar9 = 0x950;
      if (*piVar10 == 9) goto LAB_0001aa40;
    }
    FUN_00019c48(iVar4,uVar8,iVar6);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);
  if (unaff_s8 == (int *)0x0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    piVar12 = (int *)*piVar10;
    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    *piVar10 = (int)piVar12;
    goto LAB_0001a1e8;
  }
  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));
  unaff_s8[10] = iVar3;
  if (iVar3 == 0) {
    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();
    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    *piVar12 = 0xc;
    goto LAB_0001a1e8;
  }
  pcVar15 = *(code **)(pcVar14 + 0x25458);
  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);
  iVar3 = (*pcVar15)(iVar6);
  unaff_s8[0x15] = iVar3;
  if (iVar3 == 0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    piVar12 = (int *)*piVar10;
    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    FUN_00021358(unaff_s8[10]);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    *piVar10 = (int)piVar12;
    goto LAB_0001a1e8;
  }
  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);
  unaff_s8[0x24] = iVar6;
  unaff_s8[0x29] = uVar7;
  *(byte *)(unaff_s8 + 0x2a) = bStack_79;
  unaff_s8[6] = iVar4;
  iVar3 = FUN_0002186c();
  uVar1 = *(uint *)(iVar4 + 0xf8);
  unaff_s8[0x25] = iVar3;
  if ((uVar1 & 2) == 0) {
    FUN_00015248(unaff_s8);
LAB_0001a03c:
    piVar12 = (int *)(iVar4 + 0xac);
    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);
    uVar9 = 0x9e4;
    if (iVar3 != 0) goto LAB_0001ab44;
    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {
      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;
      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {
        iVar3 = *(int *)(iVar4 + 0x30);
        iVar5 = *(int *)(iVar4 + 0x34);
        unaff_s8[5] = 0;
        unaff_s8[4] = iVar3;
        if (iVar5 == 0) {
          *(int **)(iVar4 + 0x34) = unaff_s8;
        }
        else {
          *(int **)(iVar3 + 0x14) = unaff_s8;
        }
        *(int **)(iVar4 + 0x30) = unaff_s8;
      }
      iVar3 = *(int *)(iVar4 + 8);
      iVar5 = *(int *)(iVar4 + 0xc);
      unaff_s8[3] = 0;
      unaff_s8[2] = iVar3;
      if (iVar5 == 0) {
        *(int **)(iVar4 + 0xc) = unaff_s8;
      }
      else {
        *(int **)(iVar3 + 0xc) = unaff_s8;
      }
      pcVar15 = *(code **)(pcVar14 + 0x25538);
      *(int **)(iVar4 + 8) = unaff_s8;
      iVar3 = (*pcVar15)(piVar12);
      uVar9 = 0xa01;
      if (iVar3 != 0) goto LAB_0001ab1c;
      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {
        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);
      }
      uVar1 = *(uint *)(iVar4 + 0xf8);
      if ((uVar1 & 4) == 0) {
        iVar3 = *(int *)(iVar4 + 0x90);
        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);
        unaff_s8[0x17] = iVar3;
        if ((uVar1 & 0x200) == 0) {
LAB_0001a9b8:
          unaff_s5 = 1;
          if (uVar13 == 0) goto LAB_0001a1e8;
          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;
          iVar3 = (**(code **)(pcVar14 + 0x2541c))
                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);
          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))
          {
            unaff_s5 = 1;
            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = 1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,
                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,
                             unaff_s8);
        if (iVar3 == 0) {
          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
          unaff_s5 = *piVar10;
          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);
          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);
          goto LAB_0001a72c;
        }
        uVar1 = *(uint *)(iVar4 + 0xf8);
        if ((uVar1 & 0x200) == 0) {
          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if ((uVar1 & 0x1000) == 0) {
        pcVar15 = *(code **)(pcVar14 + 0x25474);
      }
      else {
        pcVar15 = *(code **)(pcVar14 + 0x25474);
        if (uVar13 == 0) {
          iVar3 = *(int *)(iVar4 + 0x20);
          iVar6 = *(int *)(iVar4 + 0x24);
          unaff_s8[1] = 0;
          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;
          *unaff_s8 = iVar3;
          if (iVar6 == 0) {
            *(int **)(iVar4 + 0x24) = unaff_s8;
            unaff_s5 = 1;
            *(int **)(iVar4 + 0x20) = unaff_s8;
            goto LAB_0001a1e8;
          }
          *(int **)(iVar3 + 4) = unaff_s8;
          unaff_s5 = 1;
          *(int **)(iVar4 + 0x20) = unaff_s8;
          goto LAB_0001a1e8;
        }
      }
      auStack_d0[0] = 0x80000007;
      piStack_c8 = unaff_s8;
      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);
      if (iVar3 == 0) {
        unaff_s5 = 1;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;
        goto LAB_0001a1e8;
      }
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      unaff_s5 = *piVar10;
      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);
      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);
      goto LAB_0001a72c;
    }
  }
  else {
    piVar12 = (int *)0x1;
    unaff_s8[0x3c] = 1;
    FUN_00029db0(unaff_s8);
    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);
    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));
    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);
    if (*(int *)(iVar4 + 0x110) == 1) {
      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));
LAB_0001a950:
      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);
      if (*(int *)(iVar4 + 0x138) != 0) {
        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);
      }
      goto LAB_0001a03c;
    }
    if (*(int *)(iVar4 + 0x110) == 4) {
      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));
      (**(code **)(pcVar14 + 0x25434))
                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);
      goto LAB_0001a950;
    }
    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {
      uVar9 = 0x9c3;
      goto LAB_0001aa40;
    }
    FUN_00019c48(iVar4,uVar8,iVar6);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,
               *(int *)(pcVar14 + 0x25258) + -0x383c);
  }
  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);
  uVar9 = 0x9ea;
  if (iVar3 != 0) goto LAB_0001ab1c;
  unaff_s5 = 0x17;
  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);
LAB_0001a72c:
  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {
    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);
  }
  if (unaff_s8[0x39] != 0) {
    (**(code **)(pcVar14 + 0x25534))();
  }
  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
  if (iVar3 != 0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    uVar9 = 0xa56;
    if (*piVar10 == 9) goto LAB_0001aa40;
  }
  FUN_00019c48(iVar4,uVar8,iVar6);
  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);
  if (iVar3 != 0) goto LAB_0001ab40;
  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;
  iVar3 = unaff_s8[4];
  if (unaff_s8[5] == 0) {
    *(int *)(iVar4 + 0x30) = iVar3;
    iVar6 = 0;
  }
  else {
    *(int *)(unaff_s8[5] + 0x10) = iVar3;
    iVar3 = unaff_s8[4];
    iVar6 = unaff_s8[5];
  }
  if (iVar3 == 0) goto LAB_0001aa64;
  *(int *)(iVar3 + 0x14) = iVar6;
  do {
    unaff_s8[4] = 0;
    unaff_s8[5] = 0;
LAB_0001a804:
    iVar3 = unaff_s8[2];
    if (unaff_s8[3] == 0) {
      *(int *)(iVar4 + 8) = iVar3;
      iVar6 = 0;
    }
    else {
      *(int *)(unaff_s8[3] + 8) = iVar3;
      iVar3 = unaff_s8[2];
      iVar6 = unaff_s8[3];
    }
    if (iVar3 == 0) {
      *(int *)(iVar4 + 0xc) = iVar6;
    }
    else {
      *(int *)(iVar3 + 0xc) = iVar6;
    }
    pcVar15 = *(code **)(pcVar14 + 0x25538);
    unaff_s8[2] = 0;
    unaff_s8[3] = 0;
    iVar3 = (*pcVar15)(piVar12);
    if (iVar3 == 0) {
      FUN_00021358(unaff_s8[10]);
      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);
      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      if (unaff_s5 == 0) {
        *piVar10 = 0x16;
      }
      else {
        *piVar10 = unaff_s5;
        unaff_s5 = 0;
      }
LAB_0001a1e8:
      if (iStack_bc == *piVar11) {
        return unaff_s5;
      }
      (**(code **)(pcVar14 + 0x254b4))();
    }
    uVar9 = 0xa67;
LAB_0001ab1c:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x51b8);
LAB_0001ab40:
    uVar9 = 0xa5b;
LAB_0001ab44:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x51e0);
LAB_0001ab68:
    FUN_00019bc8();
LAB_0001ab78:
    uVar9 = 0x912;
LAB_0001aa40:
    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);
LAB_0001aa44:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x3950);
    iVar6 = extraout_v1;
LAB_0001aa64:
    *(int *)(iVar4 + 0x34) = iVar6;
  } while( true );
}


lui gp,0x3
addiu gp,gp,-0x2b98
addu gp,gp,t9
addiu sp,sp,-0x20
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
li a2,0x118
lw a1,-0x7fd4(gp)
sw gp,0x10(sp)
sw ra,0x1c(sp)
addiu a3,a3,-0x51e0
lw a0,0x0(v0)
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
(translation_unit "int FUN_00019bc8(void)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}\n\n" (function_definition "int FUN_00019bc8(void)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00019bc8(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 auStack_d0 [2];" type_identifier (array_declarator "auStack_d0 [2]" identifier [ number_literal ]) ;) (declaration "int *piStack_c8;" primitive_type (pointer_declarator "*piStack_c8" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "int *piStack_b4;" primitive_type (pointer_declarator "*piStack_b4" * identifier) ;) (declaration "undefined1 *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "int iStack_ac;" primitive_type identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "byte bStack_79;" type_identifier identifier ;) (declaration "undefined1 auStack_74 [24];" type_identifier (array_declarator "auStack_74 [24]" identifier [ number_literal ]) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (expression_statement "pcVar14 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar14 = *(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 "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);" (call_expression "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (expression_statement "uVar8 = 0x128;" (assignment_expression "uVar8 = 0x128" identifier = number_literal) ;) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x25460);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x25460)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x25460)" * (pointer_expression "*(int **)(pcVar14 + 0x25460)" * (cast_expression "(int **)(pcVar14 + 0x25460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25460)" ( (binary_expression "pcVar14 + 0x25460" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);" (assignment_expression "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x25468)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x25468)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25468)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25468)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25468)" ( (binary_expression "pcVar14 + 0x25468" identifier + number_literal) ))))))) ;) (expression_statement "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;" (assignment_expression "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0" identifier = (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25454)" * (cast_expression "(int *)(pcVar14 + 0x25454)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);" (call_expression "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25454)" * (cast_expression "(int *)(pcVar14 + 0x25454)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar10 = *(int **)(pcVar15 + 0x256a4);" (assignment_expression "piVar10 = *(int **)(pcVar15 + 0x256a4)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x256a4)" * (cast_expression "(int **)(pcVar15 + 0x256a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256a4)" ( (binary_expression "pcVar15 + 0x256a4" identifier + number_literal) ))))) ;) (expression_statement "iStack_5c = *piVar10;" (assignment_expression "iStack_5c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x70)" identifier = (pointer_expression "*(int *)(iVar3 + 0x70)" * (cast_expression "(int *)(iVar3 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x70)" ( (binary_expression "iVar3 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" while (parenthesized_expression "(iVar5 = iVar4, iVar5 != 0)" ( (comma_expression "iVar5 = iVar4, iVar5 != 0" (assignment_expression "iVar5 = iVar4" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" { (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x70)" identifier = (pointer_expression "*(int *)(iVar5 + 0x70)" * (cast_expression "(int *)(iVar5 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0xf4) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xf4) == 0" (pointer_expression "*(int *)(iVar3 + 0xf4)" * (cast_expression "(int *)(iVar3 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xf4)" ( (binary_expression "iVar3 + 0xf4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }" { (labeled_statement "LAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" statement_identifier : (if_statement "if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" if (parenthesized_expression "(iStack_5c == *piVar10)" ( (binary_expression "iStack_5c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n      return *piVar10;\n    }" { (return_statement "return *piVar10;" return (pointer_expression "*piVar10" * identifier) ;) }))) (labeled_statement "LAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x25670))();" (call_expression "(**(code **)(pcVar15 + 0x25670))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x25670))" ( (pointer_expression "**(code **)(pcVar15 + 0x25670)" * (pointer_expression "*(code **)(pcVar15 + 0x25670)" * (cast_expression "(code **)(pcVar15 + 0x25670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25670)" ( (binary_expression "pcVar15 + 0x25670" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00019dcc:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" { (expression_statement "unaff_s2 = auStack_74;" (assignment_expression "unaff_s2 = auStack_74" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);" (assignment_expression "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2)" identifier = (call_expression "FUN_0001996c(iVar6,uVar8,unaff_s2)" identifier (argument_list "(iVar6,uVar8,unaff_s2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00019cac;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;)) (expression_statement "unaff_s3 = iVar3 + 0x94;" (assignment_expression "unaff_s3 = iVar3 + 0x94" identifier = (binary_expression "iVar3 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3)" identifier = (call_expression "(**(code **)(pcVar15 + 0x25660))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25660))" ( (pointer_expression "**(code **)(pcVar15 + 0x25660)" * (pointer_expression "*(code **)(pcVar15 + 0x25660)" * (cast_expression "(code **)(pcVar15 + 0x25660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25660)" ( (binary_expression "pcVar15 + 0x25660" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_00019dcc;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019dcc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = *(int *)(pcVar15 + 0x2543c);" (assignment_expression "unaff_s4 = *(int *)(pcVar15 + 0x2543c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x2543c)" * (cast_expression "(int *)(pcVar15 + 0x2543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2543c)" ( (binary_expression "pcVar15 + 0x2543c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar3 + 0x78;" (assignment_expression "iVar3 = iVar3 + 0x78" identifier = (binary_expression "iVar3 + 0x78" identifier + number_literal)) ;) (expression_statement "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" identifier = (cast_expression "(int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25574))" ( (pointer_expression "**(code **)(pcVar15 + 0x25574)" * (pointer_expression "*(code **)(pcVar15 + 0x25574)" * (cast_expression "(code **)(pcVar15 + 0x25574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25574)" ( (binary_expression "pcVar15 + 0x25574" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" { (expression_statement "unaff_s2 = (undefined1 *)*piVar12;" (assignment_expression "unaff_s2 = (undefined1 *)*piVar12" identifier = (cast_expression "(undefined1 *)*piVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "iVar4 = *(int *)(unaff_s2 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(unaff_s2 + 0x14) + -1" identifier = (binary_expression "*(int *)(unaff_s2 + 0x14) + -1" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" if (parenthesized_expression "(*(int *)(unaff_s2 + 0x14) != 0)" ( (binary_expression "*(int *)(unaff_s2 + 0x14) != 0" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" { (expression_statement "*(int *)(unaff_s2 + 0x14) = iVar4;" (assignment_expression "*(int *)(unaff_s2 + 0x14) = iVar4" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) goto LAB_00019d6c;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d6c;" goto statement_identifier ;)) (while_statement "while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" while (parenthesized_expression "(iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3)" identifier = (call_expression "(**(code **)(pcVar15 + 0x256f4))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256f4))" ( (pointer_expression "**(code **)(pcVar15 + 0x256f4)" * (pointer_expression "*(code **)(pcVar15 + 0x256f4)" * (cast_expression "(code **)(pcVar15 + 0x256f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256f4)" ( (binary_expression "pcVar15 + 0x256f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )) (compound_statement "{\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" { (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (call_expression "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25620))" ( (pointer_expression "**(code **)(pcVar15 + 0x25620)" * (pointer_expression "*(code **)(pcVar15 + 0x25620)" * (cast_expression "(code **)(pcVar15 + 0x25620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25620)" ( (binary_expression "pcVar15 + 0x25620" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(pcVar15 + 0x256b0))(unaff_s2);" (call_expression "(**(code **)(pcVar15 + 0x256b0))(unaff_s2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256b0))" ( (pointer_expression "**(code **)(pcVar15 + 0x256b0)" * (pointer_expression "*(code **)(pcVar15 + 0x256b0)" * (cast_expression "(code **)(pcVar15 + 0x256b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256b0)" ( (binary_expression "pcVar15 + 0x256b0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2)" ( identifier ))) ;) })) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;) })) (expression_statement "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);" (call_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25428)" ( (binary_expression "pcVar15 + 0x25428" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" ( (pointer_expression "**(undefined4 **)(pcVar15 + 0x25420)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25420)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25420)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25420)" ( (binary_expression "pcVar15 + 0x25420" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x3984" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00019dc0;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = 0x1dc;" (assignment_expression "uVar8 = 0x1dc" identifier = number_literal) ;) (expression_statement "iVar4 = **(int **)(pcVar15 + 0x25420);" (assignment_expression "iVar4 = **(int **)(pcVar15 + 0x25420)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x25420)" * (pointer_expression "*(int **)(pcVar15 + 0x25420)" * (cast_expression "(int **)(pcVar15 + 0x25420)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25420)" ( (binary_expression "pcVar15 + 0x25420" identifier + number_literal) )))))) ;) (expression_statement "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;" (assignment_expression "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0" identifier = (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x39b0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);" (assignment_expression "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25428)" ( (binary_expression "pcVar15 + 0x25428" identifier + number_literal) ))))))) ;) (expression_statement "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;" (assignment_expression "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0" identifier = (binary_expression "*(int *)(pcVar15 + 0x25414) - 0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,uVar7,0x1dc);" (call_expression "(*pcVar14)(iVar4,uVar7,0x1dc)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,uVar7,0x1dc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x254e8);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x254e8)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x254e8)" * (cast_expression "(int **)(pcVar14 + 0x254e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254e8)" ( (binary_expression "pcVar14 + 0x254e8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;" (assignment_expression "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff" identifier = (binary_expression "(uint)(pcVar15 + 0x2d3e8) & 0xff" (call_expression "(uint)(pcVar15 + 0x2d3e8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar15 + 0x2d3e8)" ( (binary_expression "pcVar15 + 0x2d3e8" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "piVar12 = (int *)(uint)bStack_79;" (assignment_expression "piVar12 = (int *)(uint)bStack_79" identifier = (cast_expression "(int *)(uint)bStack_79" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_79" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iStack_bc = *piVar11;" (assignment_expression "iStack_bc = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iStack_b8 = iVar3;" (assignment_expression "iStack_b8 = iVar3" identifier = identifier) ;) (expression_statement "piStack_b4 = piVar10;" (assignment_expression "piStack_b4 = piVar10" identifier = identifier) ;) (expression_statement "puStack_b0 = unaff_s2;" (assignment_expression "puStack_b0 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_ac = unaff_s3;" (assignment_expression "iStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "iStack_a8 = unaff_s4;" (assignment_expression "iStack_a8 = unaff_s4" identifier = identifier) ;) (if_statement "if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" if (parenthesized_expression "((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0))" ( (binary_expression "(uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x74)" identifier = (pointer_expression "*(int *)(iVar4 + 0x74)" * (cast_expression "(int *)(iVar4 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x74)" ( (binary_expression "iVar4 + 0x74" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" { (expression_statement "uVar13 = *(uint *)(iVar4 + 0x88);" (assignment_expression "uVar13 = *(uint *)(iVar4 + 0x88)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x88)" * (cast_expression "(uint *)(iVar4 + 0x88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar13 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3" identifier = (binary_expression "(uVar7 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar7 % uVar13) * 0x174" (parenthesized_expression "(uVar7 % uVar13)" ( (binary_expression "uVar7 % uVar13" identifier % identifier) )) * number_literal) + identifier)) ;) (if_statement "if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" if (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" ( (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" * (cast_expression "(uint *)(iVar5 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0xe8)" * (cast_expression "(uint *)(iVar5 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" { (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" identifier = identifier) ;) (do_statement "do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));" do (compound_statement "{\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        }" { (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;" if (parenthesized_expression "(uVar7 + uVar13 == uVar1)" ( (binary_expression "uVar7 + uVar13 == uVar1" (binary_expression "uVar7 + uVar13" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar13 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3" identifier = (binary_expression "(uVar1 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar1 % uVar13) * 0x174" (parenthesized_expression "(uVar1 % uVar13)" ( (binary_expression "uVar1 % uVar13" identifier % identifier) )) * number_literal) + identifier)) ;) }) while (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" ( (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" * (cast_expression "(uint *)(iVar5 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0xe8)" * (cast_expression "(uint *)(iVar5 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) ))))) )) ;) })) (expression_statement "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" identifier = (call_expression "FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" identifier (argument_list "(iVar5,uVar7,uVar8,iVar6,1,piVar12)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;)) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x900, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x900, *piVar10 == 9" (assignment_expression "uVar9 = 0x900" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (compound_statement "{\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" { (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)uVar7)" ( (binary_expression "0x3ff < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" ( (comma_expression "piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x25258)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x25258)" * (cast_expression "(int **)(pcVar14 + 0x25258)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) ))))) , (binary_expression "(*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 0x240)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 0x240" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = iVar4;" (assignment_expression "unaff_s5 = iVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec))" ( (binary_expression "*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)" (pointer_expression "*(int *)(iVar4 + 0xe8)" * (cast_expression "(int *)(iVar4 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar4 + 0xec)" * (cast_expression "(int *)(iVar4 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xec)" ( (binary_expression "iVar4 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (labeled_statement "LAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" statement_identifier : (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x93d, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x93d, *piVar10 == 9" (assignment_expression "uVar9 = 0x93d" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" statement_identifier : (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;)) (expression_statement "*piVar10 = 0x17;" (assignment_expression "*piVar10 = 0x17" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" identifier = (pointer_expression "*(int *)(iVar4 + 0x70)" * (cast_expression "(int *)(iVar4 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" while (parenthesized_expression "(iVar5 = iVar3, iVar5 != 0)" ( (comma_expression "iVar5 = iVar3, iVar5 != 0" (assignment_expression "iVar5 = iVar3" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" { (expression_statement "unaff_s5 = iVar5;" (assignment_expression "unaff_s5 = iVar5" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x70)" identifier = (pointer_expression "*(int *)(iVar5 + 0x70)" * (cast_expression "(int *)(iVar5 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" if (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" ( (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" * (cast_expression "(int *)(unaff_s5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18)" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25458))(0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25458))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25458))" ( (pointer_expression "**(code **)(pcVar14 + 0x25458)" * (pointer_expression "*(code **)(pcVar14 + 0x25458)" * (cast_expression "(code **)(pcVar14 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25458)" ( (binary_expression "pcVar14 + 0x25458" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);" (assignment_expression "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8)" identifier = (call_expression "FUN_0001996c(uVar8,iVar6,unaff_s8)" identifier (argument_list "(uVar8,iVar6,unaff_s8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "iVar3 = unaff_s5 + 0x94;" (assignment_expression "iVar3 = unaff_s5 + 0x94" identifier = (binary_expression "unaff_s5 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);" (assignment_expression "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);" (assignment_expression "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" identifier = (cast_expression "(undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25410))" ( (pointer_expression "**(code **)(pcVar14 + 0x25410)" * (pointer_expression "*(code **)(pcVar14 + 0x25410)" * (cast_expression "(code **)(pcVar14 + 0x25410)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25410)" ( (binary_expression "pcVar14 + 0x25410" identifier + number_literal) ))))) )) (argument_list "(unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" ( identifier , (binary_expression "unaff_s5 + 0x78" identifier + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x7054" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);" (assignment_expression "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" identifier = (cast_expression "(int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar14 + 0x25258) + -0x3904)" ( (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3904" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(unaff_s5,piVar10);" (call_expression "FUN_00020df0(unaff_s5,piVar10)" identifier (argument_list "(unaff_s5,piVar10)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25538))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" ( (pointer_expression "**(code **)(pcVar14 + 0x25538)" * (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar10 = (int *)*puVar2;" (assignment_expression "piVar10 = (int *)*puVar2" identifier = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != piVar10)" ( (binary_expression "unaff_s8 != piVar10" identifier != identifier) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (if_statement "if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4))" ( (binary_expression "(uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar10[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar10[5]" identifier [ number_literal ])) < (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" * (cast_expression "(uint *)(unaff_s5 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }" { (expression_statement "piVar10[5] = piVar10[5] + 1;" (assignment_expression "piVar10[5] = piVar10[5] + 1" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = (binary_expression "piVar10[5] + 1" (subscript_expression "piVar10[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" identifier = (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" identifier = (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" statement_identifier : (expression_statement "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" (call_expression "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400)" identifier (argument_list "(iVar4,piVar10 + -0xe4e,uVar7,0x400)" ( identifier , (binary_expression "piVar10 + -0xe4e" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar3 != 0) && (*piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (*piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0))" ( (binary_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x40)" * (cast_expression "(code **)(iVar4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" ( (comma_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" identifier = (call_expression "(**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x40))" ( (pointer_expression "**(code **)(iVar4 + 0x40)" * (pointer_expression "*(code **)(iVar4 + 0x40)" * (cast_expression "(code **)(iVar4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x44)" * (cast_expression "(undefined4 *)(iVar4 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "unaff_s5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = 0x950;" (assignment_expression "uVar9 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25340))(1,0x100)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25340))" ( (pointer_expression "**(code **)(pcVar14 + 0x25340)" * (pointer_expression "*(code **)(pcVar14 + 0x25340)" * (cast_expression "(code **)(pcVar14 + 0x25340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25340)" ( (binary_expression "pcVar14 + 0x25340" identifier + number_literal) ))))) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x962, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x962, *piVar10 == 9" (assignment_expression "uVar9 = 0x962" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));" (assignment_expression "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" identifier = (call_expression "FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x7c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x7c)" * (cast_expression "(undefined4 *)(iVar4 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x7c)" ( (binary_expression "iVar4 + 0x7c" identifier + number_literal) )))) )))) ;) (expression_statement "unaff_s8[10] = iVar3;" (assignment_expression "unaff_s8[10] = iVar3" (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(*piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(*piVar12)" ( (pointer_expression "*piVar12" * identifier) )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x971, *piVar12 == 9)" ( (comma_expression "uVar9 = 0x971, *piVar12 == 9" (assignment_expression "uVar9 = 0x971" identifier = number_literal) , (binary_expression "*piVar12 == 9" (pointer_expression "*piVar12" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar12 = 0xc;" (assignment_expression "*piVar12 = 0xc" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25458);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25458)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25458)" * (cast_expression "(code **)(pcVar14 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25458)" ( (binary_expression "pcVar14 + 0x25458" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0)" (subscript_expression "unaff_s8[0x26]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0xf0)" * (cast_expression "(int *)(iVar4 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf0)" ( (binary_expression "iVar4 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (*pcVar15)(iVar6);" (assignment_expression "iVar3 = (*pcVar15)(iVar6)" identifier = (call_expression "(*pcVar15)(iVar6)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "unaff_s8[0x15] = iVar3;" (assignment_expression "unaff_s8[0x15] = iVar3" (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x985, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x985, *piVar10 == 9" (assignment_expression "uVar9 = 0x985" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);" (call_expression "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254ec))" ( (pointer_expression "**(code **)(pcVar14 + 0x254ec)" * (pointer_expression "*(code **)(pcVar14 + 0x254ec)" * (cast_expression "(code **)(pcVar14 + 0x254ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254ec)" ( (binary_expression "pcVar14 + 0x254ec" identifier + number_literal) ))))) )) (argument_list "(iVar3,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8[0x24] = iVar6;" (assignment_expression "unaff_s8[0x24] = iVar6" (subscript_expression "unaff_s8[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "unaff_s8[0x29] = uVar7;" (assignment_expression "unaff_s8[0x29] = uVar7" (subscript_expression "unaff_s8[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = bStack_79;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = bStack_79" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" * (cast_expression "(byte *)(unaff_s8 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8 + 0x2a)" ( (binary_expression "unaff_s8 + 0x2a" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s8[6] = iVar4;" (assignment_expression "unaff_s8[6] = iVar4" (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = FUN_0002186c();" (assignment_expression "iVar3 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x25] = iVar3;" (assignment_expression "unaff_s8[0x25] = iVar3" (subscript_expression "unaff_s8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" if (parenthesized_expression "((uVar1 & 2) == 0)" ( (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);" statement_identifier : (expression_statement "piVar12 = (int *)(iVar4 + 0xac);" (assignment_expression "piVar12 = (int *)(iVar4 + 0xac)" identifier = (cast_expression "(int *)(iVar4 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xac)" ( (binary_expression "iVar4 + 0xac" identifier + number_literal) )))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0x9e4;" (assignment_expression "uVar9 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec))" ( (binary_expression "*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar4 + 0xec)" * (cast_expression "(uint *)(iVar4 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xec)" ( (binary_expression "iVar4 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" { (expression_statement "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;" (assignment_expression "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" if (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[4] = iVar3;" (assignment_expression "unaff_s8[4] = iVar3" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar4 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x34) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x34)" * (cast_expression "(int **)(iVar4 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" else (compound_statement "{\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar3 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0x14)" * (cast_expression "(int **)(iVar3 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int **)(iVar4 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x30) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x30)" * (cast_expression "(int **)(iVar4 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[2] = iVar3;" (assignment_expression "unaff_s8[2] = iVar3" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar4 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" else (compound_statement "{\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar3 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(iVar4 + 8) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 8) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 8)" * (cast_expression "(int **)(iVar4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" identifier = (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0xa01;" (assignment_expression "uVar9 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" if (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" { (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" ( (pointer_expression "**(code **)(iVar4 + 0x50)" * (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" * (cast_expression "(undefined4 *)(iVar4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x90);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x90)" identifier = (pointer_expression "*(int *)(iVar4 + 0x90)" * (cast_expression "(int *)(iVar4 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c)" (subscript_expression "unaff_s8[0x16]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0x8c)" * (cast_expression "(int *)(iVar4 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8c)" ( (binary_expression "iVar4 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x17] = iVar3;" (assignment_expression "unaff_s8[0x17] = iVar3" (subscript_expression "unaff_s8[0x17]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (if_statement "if (uVar13 == 0) goto LAB_0001a1e8;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(*(int *)(iVar4 + 0xdc) == -1)" ( (binary_expression "*(int *)(iVar4 + 0xdc) == -1" (pointer_expression "*(int *)(iVar4 + 0xdc)" * (cast_expression "(int *)(iVar4 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xdc)" ( (binary_expression "iVar4 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2541c))" ( (pointer_expression "**(code **)(pcVar14 + 0x2541c)" * (pointer_expression "*(code **)(pcVar14 + 0x2541c)" * (cast_expression "(code **)(pcVar14 + 0x2541c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2541c)" ( (binary_expression "pcVar14 + 0x2541c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar4 + 0xdc)" * (cast_expression "(int *)(iVar4 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xdc)" ( (binary_expression "iVar4 + 0xdc" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x28d8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))" ( (binary_expression "(iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" ( (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar10 != 0xb" (pointer_expression "*piVar10" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x37f4" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);" (assignment_expression "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" identifier = (call_expression "FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" identifier (argument_list "(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" ( (binary_expression "unaff_s8 + 0x16" identifier + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3824" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(iVar4 + 0x84)" * (cast_expression "(undefined4 *)(iVar4 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x445c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3814" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((uVar1 & 4) != 0) goto LAB_0001a8dc;" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" if (parenthesized_expression "((uVar1 & 0x1000) == 0)" ( (binary_expression "(uVar1 & 0x1000) == 0" (parenthesized_expression "(uVar1 & 0x1000)" ( (binary_expression "uVar1 & 0x1000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }" { (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25474)" * (cast_expression "(code **)(pcVar14 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25474)" ( (binary_expression "pcVar14 + 0x25474" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" else (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25474)" * (cast_expression "(code **)(pcVar14 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25474)" ( (binary_expression "pcVar14 + 0x25474" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x20);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x20)" identifier = (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x24);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x24)" identifier = (pointer_expression "*(int *)(iVar4 + 0x24)" * (cast_expression "(int *)(iVar4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*unaff_s8 = iVar3;" (assignment_expression "*unaff_s8 = iVar3" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (if_statement "if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" { (expression_statement "*(int **)(iVar4 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x24) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x24)" * (cast_expression "(int **)(iVar4 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" * (cast_expression "(int **)(iVar4 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "*(int **)(iVar3 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" * (cast_expression "(int **)(iVar4 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }))) (expression_statement "auStack_d0[0] = 0x80000007;" (assignment_expression "auStack_d0[0] = 0x80000007" (subscript_expression "auStack_d0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piStack_c8 = unaff_s8;" (assignment_expression "piStack_c8 = unaff_s8" identifier = identifier) ;) (expression_statement "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);" (assignment_expression "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" identifier = (call_expression "(*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xcc)" * (cast_expression "(undefined4 *)(iVar4 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xcc)" ( (binary_expression "iVar4 + 0xcc" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x4da8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" else (compound_statement "{\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" { (expression_statement "piVar12 = (int *)0x1;" (assignment_expression "piVar12 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);" (call_expression "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25414))" ( (pointer_expression "**(code **)(pcVar14 + 0x25414)" * (pointer_expression "*(code **)(pcVar14 + 0x25414)" * (cast_expression "(code **)(pcVar14 + 0x25414)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25414)" ( (binary_expression "pcVar14 + 0x25414" identifier + number_literal) ))))) )) (argument_list "(unaff_s8 + 0x39,0x49)" ( (binary_expression "unaff_s8 + 0x39" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));" (call_expression "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x253ac)" * (pointer_expression "*(code **)(pcVar14 + 0x253ac)" * (cast_expression "(code **)(pcVar14 + 0x253ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253ac)" ( (binary_expression "pcVar14 + 0x253ac" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(iVar4 + 0x10c)" * (cast_expression "(undefined4 *)(iVar4 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10c)" ( (binary_expression "iVar4 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25454))" ( (pointer_expression "**(code **)(pcVar14 + 0x25454)" * (pointer_expression "*(code **)(pcVar14 + 0x25454)" * (cast_expression "(code **)(pcVar14 + 0x25454)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],unaff_s8)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 1)" ( (binary_expression "*(int *)(iVar4 + 0x110) == 1" (pointer_expression "*(int *)(iVar4 + 0x110)" * (cast_expression "(int *)(iVar4 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x110)" ( (binary_expression "iVar4 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar14 + 0x253d4)" * (pointer_expression "*(code **)(pcVar14 + 0x253d4)" * (cast_expression "(code **)(pcVar14 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253d4)" ( (binary_expression "pcVar14 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x114)" * (cast_expression "(undefined4 *)(iVar4 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x114)" ( (binary_expression "iVar4 + 0x114" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" statement_identifier : (expression_statement "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" (call_expression "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x253e8))" ( (pointer_expression "**(code **)(pcVar14 + 0x253e8)" * (pointer_expression "*(code **)(pcVar14 + 0x253e8)" * (cast_expression "(code **)(pcVar14 + 0x253e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253e8)" ( (binary_expression "pcVar14 + 0x253e8" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],uVar7,uVar7)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier , identifier ))) ;)) (if_statement "if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x138) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x138) != 0" (pointer_expression "*(int *)(iVar4 + 0x138)" * (cast_expression "(int *)(iVar4 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x138)" ( (binary_expression "iVar4 + 0x138" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);" (call_expression "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25470))" ( (pointer_expression "**(code **)(pcVar14 + 0x25470)" * (pointer_expression "*(code **)(pcVar14 + 0x25470)" * (cast_expression "(code **)(pcVar14 + 0x25470)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25470)" ( (binary_expression "pcVar14 + 0x25470" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],1)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 4)" ( (binary_expression "*(int *)(iVar4 + 0x110) == 4" (pointer_expression "*(int *)(iVar4 + 0x110)" * (cast_expression "(int *)(iVar4 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x110)" ( (binary_expression "iVar4 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar14 + 0x253d4)" * (pointer_expression "*(code **)(pcVar14 + 0x253d4)" * (cast_expression "(code **)(pcVar14 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253d4)" ( (binary_expression "pcVar14 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" * (cast_expression "(undefined4 *)(iVar4 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11c)" ( (binary_expression "iVar4 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);" (call_expression "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25434))" ( (pointer_expression "**(code **)(pcVar14 + 0x25434)" * (pointer_expression "*(code **)(pcVar14 + 0x25434)" * (cast_expression "(code **)(pcVar14 + 0x25434)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25434)" ( (binary_expression "pcVar14 + 0x25434" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" * (cast_expression "(undefined4 *)(iVar4 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11c)" ( (binary_expression "iVar4 + 0x11c" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x703c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" identifier (argument_list "(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" ( (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x387c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" if (parenthesized_expression "((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" ( (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" { (expression_statement "uVar9 = 0x9c3;" (assignment_expression "uVar9 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x383c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25538))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" ( (pointer_expression "**(code **)(pcVar14 + 0x25538)" * (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0x9ea;" (assignment_expression "uVar9 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" statement_identifier : (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" if (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" { (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" ( (pointer_expression "**(code **)(iVar4 + 0x50)" * (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" * (cast_expression "(undefined4 *)(iVar4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) }))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }" if (parenthesized_expression "(unaff_s8[0x39] != 0)" ( (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar14 + 0x25534))();\n  }" { (expression_statement "(**(code **)(pcVar14 + 0x25534))();" (call_expression "(**(code **)(pcVar14 + 0x25534))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25534))" ( (pointer_expression "**(code **)(pcVar14 + 0x25534)" * (pointer_expression "*(code **)(pcVar14 + 0x25534)" * (cast_expression "(code **)(pcVar14 + 0x25534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25534)" ( (binary_expression "pcVar14 + 0x25534" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = 0xa56;" (assignment_expression "uVar9 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;" if (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" if (parenthesized_expression "(unaff_s8[5] == 0)" ( (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }" { (expression_statement "*(int *)(iVar4 + 0x30) = iVar3;" (assignment_expression "*(int *)(iVar4 + 0x30) = iVar3" (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" else (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" { (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar3;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar3" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" * (cast_expression "(int *)(unaff_s8[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[5] + 0x10)" ( (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" identifier = (subscript_expression "unaff_s8[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 == 0) goto LAB_0001aa64;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar3 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );" do (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  }" { (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001a804:\n    iVar3 = unaff_s8[2];" statement_identifier : (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;)) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" if (parenthesized_expression "(unaff_s8[3] == 0)" ( (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }" { (expression_statement "*(int *)(iVar4 + 8) = iVar3;" (assignment_expression "*(int *)(iVar4 + 8) = iVar3" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" else (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" { (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar3;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar3" (pointer_expression "*(int *)(unaff_s8[3] + 8)" * (cast_expression "(int *)(unaff_s8[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[3] + 8)" ( (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" identifier = (subscript_expression "unaff_s8[3]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar4 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" else (compound_statement "{\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar3 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" identifier = (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar12)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" { (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n        *piVar10 = 0x16;\n      }" { (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" else (compound_statement "{\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" { (expression_statement "*piVar10 = unaff_s5;" (assignment_expression "*piVar10 = unaff_s5" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" statement_identifier : (if_statement "if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" if (parenthesized_expression "(iStack_bc == *piVar11)" ( (binary_expression "iStack_bc == *piVar11" identifier == (pointer_expression "*piVar11" * identifier)) )) (compound_statement "{\n        return unaff_s5;\n      }" { (return_statement "return unaff_s5;" return identifier ;) }))) (expression_statement "(**(code **)(pcVar14 + 0x254b4))();" (call_expression "(**(code **)(pcVar14 + 0x254b4))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x254b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254b4)" * (pointer_expression "*(code **)(pcVar14 + 0x254b4)" * (cast_expression "(code **)(pcVar14 + 0x254b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254b4)" ( (binary_expression "pcVar14 + 0x254b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar9 = 0xa67;" (assignment_expression "uVar9 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar9 = 0xa5b;" statement_identifier : (expression_statement "uVar9 = 0xa5b;" (assignment_expression "uVar9 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51e0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar9 = 0x912;" statement_identifier : (expression_statement "uVar9 = 0x912;" (assignment_expression "uVar9 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" statement_identifier : (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" ( (pointer_expression "*puVar2" * identifier) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3950" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;" statement_identifier : (expression_statement "*(int *)(iVar4 + 0x34) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x34) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(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_ip_count_lock(MHD_Daemon *daemon)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  MemoryPool *pMVar5;\n  sockaddr *psVar6;\n  time_t tVar7;\n  MHD_Connection *pMVar8;\n  MHD_FLAG MVar9;\n  MHD_Connection *pMVar10;\n  MHD_Connection *extraout_v1;\n  int iVar11;\n  MHD_thread_ID_ MVar12;\n  MHD_Daemon *pMVar13;\n  MHD_Daemon *pMVar14;\n  uint uVar15;\n  socklen_t sVar16;\n  sockaddr *addr;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  int *piVar19;\n  int *piVar20;\n  MHD_IPCount *unaff_s2;\n  MHD_Daemon *unaff_s3;\n  int unaff_s4;\n  MHD_mutex_ *pMVar21;\n  MHD_Daemon *unaff_s5;\n  uint uVar22;\n  code *pcVar23;\n  code *pcVar24;\n  MHD_Connection *unaff_s8;\n  undefined4 auStack_d0 [2];\n  MHD_Connection *pMStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  MHD_IPCount *pMStack_b0;\n  MHD_Daemon *pMStack_ac;\n  int iStack_a8;\n  _Bool _Stack_79;\n  MHD_IPCount MStack_74;\n  int iStack_5c;\n  \n  pcVar23 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  sVar16 = 0x128;\n  iVar11 = **(int **)(pcVar23 + 0x25460);\n  pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468);\n  pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0);\n  (*pcVar24)();\n  piVar19 = *(int **)(pcVar24 + 0x256a4);\n  iStack_5c = *piVar19;\n  iVar3 = *(int *)(iVar11 + 0x70);\n  while (iVar1 = iVar3, iVar1 != 0) {\n    iVar11 = iVar1;\n    iVar3 = *(int *)(iVar1 + 0x70);\n  }\n  if (*(int *)(iVar11 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();\nLAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);\n  }\n  else {\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  addr = (sockaddr *)0x1dc;\n  pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n  sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0;\n  pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428);\n  uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0;\n  (*pcVar23)();\n  piVar20 = *(int **)(pcVar23 + 0x254e8);\n  uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff;\n  pMVar21 = (MHD_mutex_ *)(uint)_Stack_79;\n  iStack_bc = *piVar20;\n  iStack_b8 = iVar11;\n  piStack_b4 = piVar19;\n  pMStack_b0 = unaff_s2;\n  pMStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar22 = pMVar14->worker_pool_size;\n    if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = pMVar14;\n  if (pMVar14->connections == pMVar14->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar19 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  pMVar18 = pMVar14->master;\n  while (pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar13;\n    pMVar18 = pMVar13->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);\n    if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  pMVar5 = MHD_pool_create(pMVar14->pool_size);\n  unaff_s8->pool = pMVar5;\n  if (pMVar5 == (MemoryPool *)0x0) {\n    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (pMVar21->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar24 = *(code **)(pcVar23 + 0x25458);\n  unaff_s8->connection_timeout = pMVar14->connection_timeout;\n  psVar6 = (sockaddr *)(*pcVar24)(sVar16);\n  unaff_s8->addr = psVar6;\n  if (psVar6 == (sockaddr *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    MHD_pool_destroy(unaff_s8->pool);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16);\n  unaff_s8->addr_len = sVar16;\n  unaff_s8->socket_fd = uVar15;\n  unaff_s8->sk_nonblck = _Stack_79;\n  unaff_s8->daemon = pMVar14;\n  tVar7 = MHD_monotonic_sec_counter();\n  MVar9 = pMVar14->options;\n  unaff_s8->last_activity = tVar7;\n  if ((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n    uVar17 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21);\n  uVar17 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea);\nLAB_0001a72c:\n  if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (**(code **)(pcVar23 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n  if (iVar3 != 0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = 0xa56;\n    if (*piVar19 == 9) goto LAB_0001aa40;\n  }\n  MHD_ip_limit_del(pMVar14,addr,sVar16);\n  iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar8 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    pMVar14->normal_timeout_head = pMVar8;\n    pMVar10 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }\n  if (pMVar8 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar8->prevX = pMVar10;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar8 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }\n    if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }\n    pcVar24 = *(code **)(pcVar23 + 0x25538);\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar3 = (*pcVar24)(pMVar21);\n    if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);\n    pMVar10 = extraout_v1;\nLAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;\n  } while( true );\n}\n\n" comment comment comment (function_definition "void MHD_ip_count_lock(MHD_Daemon *daemon)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  MemoryPool *pMVar5;\n  sockaddr *psVar6;\n  time_t tVar7;\n  MHD_Connection *pMVar8;\n  MHD_FLAG MVar9;\n  MHD_Connection *pMVar10;\n  MHD_Connection *extraout_v1;\n  int iVar11;\n  MHD_thread_ID_ MVar12;\n  MHD_Daemon *pMVar13;\n  MHD_Daemon *pMVar14;\n  uint uVar15;\n  socklen_t sVar16;\n  sockaddr *addr;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  int *piVar19;\n  int *piVar20;\n  MHD_IPCount *unaff_s2;\n  MHD_Daemon *unaff_s3;\n  int unaff_s4;\n  MHD_mutex_ *pMVar21;\n  MHD_Daemon *unaff_s5;\n  uint uVar22;\n  code *pcVar23;\n  code *pcVar24;\n  MHD_Connection *unaff_s8;\n  undefined4 auStack_d0 [2];\n  MHD_Connection *pMStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  MHD_IPCount *pMStack_b0;\n  MHD_Daemon *pMStack_ac;\n  int iStack_a8;\n  _Bool _Stack_79;\n  MHD_IPCount MStack_74;\n  int iStack_5c;\n  \n  pcVar23 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  sVar16 = 0x128;\n  iVar11 = **(int **)(pcVar23 + 0x25460);\n  pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468);\n  pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0);\n  (*pcVar24)();\n  piVar19 = *(int **)(pcVar24 + 0x256a4);\n  iStack_5c = *piVar19;\n  iVar3 = *(int *)(iVar11 + 0x70);\n  while (iVar1 = iVar3, iVar1 != 0) {\n    iVar11 = iVar1;\n    iVar3 = *(int *)(iVar1 + 0x70);\n  }\n  if (*(int *)(iVar11 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();\nLAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);\n  }\n  else {\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  addr = (sockaddr *)0x1dc;\n  pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n  sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0;\n  pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428);\n  uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0;\n  (*pcVar23)();\n  piVar20 = *(int **)(pcVar23 + 0x254e8);\n  uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff;\n  pMVar21 = (MHD_mutex_ *)(uint)_Stack_79;\n  iStack_bc = *piVar20;\n  iStack_b8 = iVar11;\n  piStack_b4 = piVar19;\n  pMStack_b0 = unaff_s2;\n  pMStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar22 = pMVar14->worker_pool_size;\n    if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = pMVar14;\n  if (pMVar14->connections == pMVar14->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar19 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  pMVar18 = pMVar14->master;\n  while (pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar13;\n    pMVar18 = pMVar13->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);\n    if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  pMVar5 = MHD_pool_create(pMVar14->pool_size);\n  unaff_s8->pool = pMVar5;\n  if (pMVar5 == (MemoryPool *)0x0) {\n    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (pMVar21->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar24 = *(code **)(pcVar23 + 0x25458);\n  unaff_s8->connection_timeout = pMVar14->connection_timeout;\n  psVar6 = (sockaddr *)(*pcVar24)(sVar16);\n  unaff_s8->addr = psVar6;\n  if (psVar6 == (sockaddr *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    MHD_pool_destroy(unaff_s8->pool);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16);\n  unaff_s8->addr_len = sVar16;\n  unaff_s8->socket_fd = uVar15;\n  unaff_s8->sk_nonblck = _Stack_79;\n  unaff_s8->daemon = pMVar14;\n  tVar7 = MHD_monotonic_sec_counter();\n  MVar9 = pMVar14->options;\n  unaff_s8->last_activity = tVar7;\n  if ((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n    uVar17 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21);\n  uVar17 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea);\nLAB_0001a72c:\n  if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (**(code **)(pcVar23 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n  if (iVar3 != 0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = 0xa56;\n    if (*piVar19 == 9) goto LAB_0001aa40;\n  }\n  MHD_ip_limit_del(pMVar14,addr,sVar16);\n  iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar8 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    pMVar14->normal_timeout_head = pMVar8;\n    pMVar10 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }\n  if (pMVar8 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar8->prevX = pMVar10;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar8 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }\n    if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }\n    pcVar24 = *(code **)(pcVar23 + 0x25538);\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar3 = (*pcVar24)(pMVar21);\n    if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);\n    pMVar10 = extraout_v1;\nLAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;\n  } while( true );\n}" primitive_type (function_declarator "MHD_ip_count_lock(MHD_Daemon *daemon)" identifier (parameter_list "(MHD_Daemon *daemon)" ( (parameter_declaration "MHD_Daemon *daemon" type_identifier (pointer_declarator "*daemon" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  MemoryPool *pMVar5;\n  sockaddr *psVar6;\n  time_t tVar7;\n  MHD_Connection *pMVar8;\n  MHD_FLAG MVar9;\n  MHD_Connection *pMVar10;\n  MHD_Connection *extraout_v1;\n  int iVar11;\n  MHD_thread_ID_ MVar12;\n  MHD_Daemon *pMVar13;\n  MHD_Daemon *pMVar14;\n  uint uVar15;\n  socklen_t sVar16;\n  sockaddr *addr;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  int *piVar19;\n  int *piVar20;\n  MHD_IPCount *unaff_s2;\n  MHD_Daemon *unaff_s3;\n  int unaff_s4;\n  MHD_mutex_ *pMVar21;\n  MHD_Daemon *unaff_s5;\n  uint uVar22;\n  code *pcVar23;\n  code *pcVar24;\n  MHD_Connection *unaff_s8;\n  undefined4 auStack_d0 [2];\n  MHD_Connection *pMStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  MHD_IPCount *pMStack_b0;\n  MHD_Daemon *pMStack_ac;\n  int iStack_a8;\n  _Bool _Stack_79;\n  MHD_IPCount MStack_74;\n  int iStack_5c;\n  \n  pcVar23 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  sVar16 = 0x128;\n  iVar11 = **(int **)(pcVar23 + 0x25460);\n  pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468);\n  pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0);\n  (*pcVar24)();\n  piVar19 = *(int **)(pcVar24 + 0x256a4);\n  iStack_5c = *piVar19;\n  iVar3 = *(int *)(iVar11 + 0x70);\n  while (iVar1 = iVar3, iVar1 != 0) {\n    iVar11 = iVar1;\n    iVar3 = *(int *)(iVar1 + 0x70);\n  }\n  if (*(int *)(iVar11 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();\nLAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);\n  }\n  else {\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  addr = (sockaddr *)0x1dc;\n  pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n  sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0;\n  pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428);\n  uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0;\n  (*pcVar23)();\n  piVar20 = *(int **)(pcVar23 + 0x254e8);\n  uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff;\n  pMVar21 = (MHD_mutex_ *)(uint)_Stack_79;\n  iStack_bc = *piVar20;\n  iStack_b8 = iVar11;\n  piStack_b4 = piVar19;\n  pMStack_b0 = unaff_s2;\n  pMStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar22 = pMVar14->worker_pool_size;\n    if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = pMVar14;\n  if (pMVar14->connections == pMVar14->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar19 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  pMVar18 = pMVar14->master;\n  while (pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar13;\n    pMVar18 = pMVar13->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);\n    if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  pMVar5 = MHD_pool_create(pMVar14->pool_size);\n  unaff_s8->pool = pMVar5;\n  if (pMVar5 == (MemoryPool *)0x0) {\n    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (pMVar21->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar24 = *(code **)(pcVar23 + 0x25458);\n  unaff_s8->connection_timeout = pMVar14->connection_timeout;\n  psVar6 = (sockaddr *)(*pcVar24)(sVar16);\n  unaff_s8->addr = psVar6;\n  if (psVar6 == (sockaddr *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    MHD_pool_destroy(unaff_s8->pool);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16);\n  unaff_s8->addr_len = sVar16;\n  unaff_s8->socket_fd = uVar15;\n  unaff_s8->sk_nonblck = _Stack_79;\n  unaff_s8->daemon = pMVar14;\n  tVar7 = MHD_monotonic_sec_counter();\n  MVar9 = pMVar14->options;\n  unaff_s8->last_activity = tVar7;\n  if ((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n    uVar17 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21);\n  uVar17 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea);\nLAB_0001a72c:\n  if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (**(code **)(pcVar23 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n  if (iVar3 != 0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = 0xa56;\n    if (*piVar19 == 9) goto LAB_0001aa40;\n  }\n  MHD_ip_limit_del(pMVar14,addr,sVar16);\n  iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar8 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    pMVar14->normal_timeout_head = pMVar8;\n    pMVar10 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }\n  if (pMVar8 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar8->prevX = pMVar10;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar8 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }\n    if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }\n    pcVar24 = *(code **)(pcVar23 + 0x25538);\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar3 = (*pcVar24)(pMVar21);\n    if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);\n    pMVar10 = extraout_v1;\nLAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "MemoryPool *pMVar5;" type_identifier (pointer_declarator "*pMVar5" * identifier) ;) (declaration "sockaddr *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "time_t tVar7;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar8;" type_identifier (pointer_declarator "*pMVar8" * identifier) ;) (declaration "MHD_FLAG MVar9;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * identifier) ;) (declaration "MHD_Connection *extraout_v1;" type_identifier (pointer_declarator "*extraout_v1" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "MHD_thread_ID_ MVar12;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "MHD_Daemon *pMVar14;" type_identifier (pointer_declarator "*pMVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "socklen_t sVar16;" type_identifier identifier ;) (declaration "sockaddr *addr;" type_identifier (pointer_declarator "*addr" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar18;" type_identifier (pointer_declarator "*pMVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "MHD_IPCount *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "MHD_Daemon *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "MHD_mutex_ *pMVar21;" type_identifier (pointer_declarator "*pMVar21" * identifier) ;) (declaration "MHD_Daemon *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "MHD_Connection *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 auStack_d0 [2];" type_identifier (array_declarator "auStack_d0 [2]" identifier [ number_literal ]) ;) (declaration "MHD_Connection *pMStack_c8;" type_identifier (pointer_declarator "*pMStack_c8" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "int *piStack_b4;" primitive_type (pointer_declarator "*piStack_b4" * identifier) ;) (declaration "MHD_IPCount *pMStack_b0;" type_identifier (pointer_declarator "*pMStack_b0" * identifier) ;) (declaration "MHD_Daemon *pMStack_ac;" type_identifier (pointer_declarator "*pMStack_ac" * identifier) ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "_Bool _Stack_79;" type_identifier identifier ;) (declaration "MHD_IPCount MStack_74;" type_identifier identifier ;) (declaration "int iStack_5c;" primitive_type identifier ;) (expression_statement "pcVar23 = *(code **)PTR_mhd_panic_0003f070;" (assignment_expression "pcVar23 = *(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 "(*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);" (call_expression "(*pcVar23)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (expression_statement "sVar16 = 0x128;" (assignment_expression "sVar16 = 0x128" identifier = number_literal) ;) (expression_statement "iVar11 = **(int **)(pcVar23 + 0x25460);" (assignment_expression "iVar11 = **(int **)(pcVar23 + 0x25460)" identifier = (pointer_expression "**(int **)(pcVar23 + 0x25460)" * (pointer_expression "*(int **)(pcVar23 + 0x25460)" * (cast_expression "(int **)(pcVar23 + 0x25460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25460)" ( (binary_expression "pcVar23 + 0x25460" identifier + number_literal) )))))) ;) (expression_statement "pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468);" (assignment_expression "pcVar24 = (code *)**(undefined4 **)(pcVar23 + 0x25468)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar23 + 0x25468)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x25468)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x25468)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25468)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25468)" ( (binary_expression "pcVar23 + 0x25468" identifier + number_literal) ))))))) ;) (expression_statement "pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0);" (assignment_expression "pMVar14 = (MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar23 + 0x25454) + -0x40a0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25454) + -0x40a0)" ( (binary_expression "*(int *)(pcVar23 + 0x25454) + -0x40a0" (pointer_expression "*(int *)(pcVar23 + 0x25454)" * (cast_expression "(int *)(pcVar23 + 0x25454)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25454)" ( (binary_expression "pcVar23 + 0x25454" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar19 = *(int **)(pcVar24 + 0x256a4);" (assignment_expression "piVar19 = *(int **)(pcVar24 + 0x256a4)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x256a4)" * (cast_expression "(int **)(pcVar24 + 0x256a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x256a4)" ( (binary_expression "pcVar24 + 0x256a4" identifier + number_literal) ))))) ;) (expression_statement "iStack_5c = *piVar19;" (assignment_expression "iStack_5c = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "iVar3 = *(int *)(iVar11 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar11 + 0x70)" identifier = (pointer_expression "*(int *)(iVar11 + 0x70)" * (cast_expression "(int *)(iVar11 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x70)" ( (binary_expression "iVar11 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar1 = iVar3, iVar1 != 0) {\n    iVar11 = iVar1;\n    iVar3 = *(int *)(iVar1 + 0x70);\n  }" while (parenthesized_expression "(iVar1 = iVar3, iVar1 != 0)" ( (comma_expression "iVar1 = iVar3, iVar1 != 0" (assignment_expression "iVar1 = iVar3" identifier = identifier) , (binary_expression "iVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n    iVar11 = iVar1;\n    iVar3 = *(int *)(iVar1 + 0x70);\n  }" { (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x70)" identifier = (pointer_expression "*(int *)(iVar1 + 0x70)" * (cast_expression "(int *)(iVar1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x70)" ( (binary_expression "iVar1 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(iVar11 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();\nLAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);\n  }\n  else {\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar11 + 0xf4) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xf4) == 0" (pointer_expression "*(int *)(iVar11 + 0xf4)" * (cast_expression "(int *)(iVar11 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xf4)" ( (binary_expression "iVar11 + 0xf4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();\nLAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);\n  }" { (labeled_statement "LAB_00019cac:\n    if (iStack_5c == *piVar19) {\n      return;\n    }" statement_identifier : (if_statement "if (iStack_5c == *piVar19) {\n      return;\n    }" if (parenthesized_expression "(iStack_5c == *piVar19)" ( (binary_expression "iStack_5c == *piVar19" identifier == (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) (labeled_statement "LAB_00019dc0:\n    (**(code **)(pcVar24 + 0x25670))();" statement_identifier : (expression_statement "(**(code **)(pcVar24 + 0x25670))();" (call_expression "(**(code **)(pcVar24 + 0x25670))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x25670))" ( (pointer_expression "**(code **)(pcVar24 + 0x25670)" * (pointer_expression "*(code **)(pcVar24 + 0x25670)" * (cast_expression "(code **)(pcVar24 + 0x25670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25670)" ( (binary_expression "pcVar24 + 0x25670" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00019dcc:\n    MHD_ip_count_lock(pMVar14);" statement_identifier : (expression_statement "MHD_ip_count_lock(pMVar14);" (call_expression "MHD_ip_count_lock(pMVar14)" identifier (argument_list "(pMVar14)" ( identifier ))) ;)) }) (else_clause "else {\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = &MStack_74;\n    iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);\n    if (iVar3 == 0) goto LAB_00019cac;\n    unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);\n    pMVar14 = unaff_s3;\n    iVar3 = (**(code **)(pcVar24 + 0x25660))();\n    if (iVar3 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar24 + 0x2543c);\n    iVar11 = iVar11 + 0x78;\n    puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n    if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" { (expression_statement "unaff_s2 = &MStack_74;" (assignment_expression "unaff_s2 = &MStack_74" identifier = (pointer_expression "&MStack_74" & identifier)) ;) (expression_statement "iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2);" (assignment_expression "iVar3 = MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2)" identifier = (call_expression "MHD_ip_addr_to_key((sockaddr *)pMVar14,sVar16,unaff_s2)" identifier (argument_list "((sockaddr *)pMVar14,sVar16,unaff_s2)" ( (cast_expression "(sockaddr *)pMVar14" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00019cac;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;)) (expression_statement "unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94);" (assignment_expression "unaff_s3 = (MHD_Daemon *)(iVar11 + 0x94)" identifier = (cast_expression "(MHD_Daemon *)(iVar11 + 0x94)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x94)" ( (binary_expression "iVar11 + 0x94" identifier + number_literal) )))) ;) (expression_statement "pMVar14 = unaff_s3;" (assignment_expression "pMVar14 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar24 + 0x25660))();" (assignment_expression "iVar3 = (**(code **)(pcVar24 + 0x25660))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x25660))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x25660))" ( (pointer_expression "**(code **)(pcVar24 + 0x25660)" * (pointer_expression "*(code **)(pcVar24 + 0x25660)" * (cast_expression "(code **)(pcVar24 + 0x25660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25660)" ( (binary_expression "pcVar24 + 0x25660" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00019dcc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019dcc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = *(int *)(pcVar24 + 0x2543c);" (assignment_expression "unaff_s4 = *(int *)(pcVar24 + 0x2543c)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x2543c)" * (cast_expression "(int *)(pcVar24 + 0x2543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x2543c)" ( (binary_expression "pcVar24 + 0x2543c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar11 + 0x78;" (assignment_expression "iVar11 = iVar11 + 0x78" identifier = (binary_expression "iVar11 + 0x78" identifier + number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054);" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x25574))(unaff_s2,iVar11,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar24 + 0x25574))" ( (pointer_expression "**(code **)(pcVar24 + 0x25574)" * (pointer_expression "*(code **)(pcVar24 + 0x25574)" * (cast_expression "(code **)(pcVar24 + 0x25574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25574)" ( (binary_expression "pcVar24 + 0x25574" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar11,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s2 = (MHD_IPCount *)*puVar4;\n      uVar15 = unaff_s2->count - 1;\n      if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);\n      (*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" { (expression_statement "unaff_s2 = (MHD_IPCount *)*puVar4;" (assignment_expression "unaff_s2 = (MHD_IPCount *)*puVar4" identifier = (cast_expression "(MHD_IPCount *)*puVar4" ( (type_descriptor "MHD_IPCount *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "uVar15 = unaff_s2->count - 1;" (assignment_expression "uVar15 = unaff_s2->count - 1" identifier = (binary_expression "unaff_s2->count - 1" (field_expression "unaff_s2->count" identifier -> field_identifier) - number_literal)) ;) (if_statement "if (unaff_s2->count != 0) {\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" if (parenthesized_expression "(unaff_s2->count != 0)" ( (binary_expression "unaff_s2->count != 0" (field_expression "unaff_s2->count" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        unaff_s2->count = uVar15;\n        if (uVar15 == 0) goto LAB_00019d6c;\n        while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" { (expression_statement "unaff_s2->count = uVar15;" (assignment_expression "unaff_s2->count = uVar15" (field_expression "unaff_s2->count" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar15 == 0) goto LAB_00019d6c;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d6c;" goto statement_identifier ;)) (while_statement "while (pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0) {\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }" while (parenthesized_expression "(pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0)" ( (comma_expression "pMVar14 = unaff_s3, iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0" (assignment_expression "pMVar14 = unaff_s3" identifier = identifier) , (comma_expression "iVar3 = (**(code **)(pcVar24 + 0x256f4))(), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(pcVar24 + 0x256f4))()" identifier = (call_expression "(**(code **)(pcVar24 + 0x256f4))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x256f4))" ( (pointer_expression "**(code **)(pcVar24 + 0x256f4)" * (pointer_expression "*(code **)(pcVar24 + 0x256f4)" * (cast_expression "(code **)(pcVar24 + 0x256f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x256f4)" ( (binary_expression "pcVar24 + 0x256f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar3 != 0" identifier != number_literal))) )) (compound_statement "{\n          MHD_ip_count_unlock(pMVar14);\nLAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);\n          (**(code **)(pcVar24 + 0x256b0))(unaff_s2);\n        }" { (expression_statement "MHD_ip_count_unlock(pMVar14);" (call_expression "MHD_ip_count_unlock(pMVar14)" identifier (argument_list "(pMVar14)" ( identifier ))) ;) (labeled_statement "LAB_00019d6c:\n          (**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);" statement_identifier : (expression_statement "(**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054);" (call_expression "(**(code **)(pcVar24 + 0x25620))(unaff_s2,iVar11,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar24 + 0x25620))" ( (pointer_expression "**(code **)(pcVar24 + 0x25620)" * (pointer_expression "*(code **)(pcVar24 + 0x25620)" * (cast_expression "(code **)(pcVar24 + 0x25620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25620)" ( (binary_expression "pcVar24 + 0x25620" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar11,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(pcVar24 + 0x256b0))(unaff_s2);" (call_expression "(**(code **)(pcVar24 + 0x256b0))(unaff_s2)" (parenthesized_expression "(**(code **)(pcVar24 + 0x256b0))" ( (pointer_expression "**(code **)(pcVar24 + 0x256b0)" * (pointer_expression "*(code **)(pcVar24 + 0x256b0)" * (cast_expression "(code **)(pcVar24 + 0x256b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x256b0)" ( (binary_expression "pcVar24 + 0x256b0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2)" ( identifier ))) ;) })) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;) })) (expression_statement "pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);" (assignment_expression "pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420)" identifier = (cast_expression "(MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar24 + 0x25420)" * (pointer_expression "*(undefined4 **)(pcVar24 + 0x25420)" * (cast_expression "(undefined4 **)(pcVar24 + 0x25420)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25420)" ( (binary_expression "pcVar24 + 0x25420" identifier + number_literal) ))))))) ;) (expression_statement "(*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984);" (call_expression "(*(code *)**(undefined4 **)(pcVar24 + 0x25428))\n                (pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar24 + 0x25428))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar24 + 0x25428)" * (cast_expression "(code *)**(undefined4 **)(pcVar24 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar24 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar24 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar24 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25428)" ( (binary_expression "pcVar24 + 0x25428" identifier + number_literal) ))))))) )) (argument_list "(pMVar14,*(int *)(pcVar24 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar24 + 0x25414) + -0x3984)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x25414) + -0x40a0" (pointer_expression "*(int *)(pcVar24 + 0x25414)" * (cast_expression "(int *)(pcVar24 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x25414)" ( (binary_expression "pcVar24 + 0x25414" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar24 + 0x25414) + -0x3984" (pointer_expression "*(int *)(pcVar24 + 0x25414)" * (cast_expression "(int *)(pcVar24 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x25414)" ( (binary_expression "pcVar24 + 0x25414" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00019dc0;" goto statement_identifier ;) })) }))) (expression_statement "addr = (sockaddr *)0x1dc;" (assignment_expression "addr = (sockaddr *)0x1dc" identifier = (cast_expression "(sockaddr *)0x1dc" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420);" (assignment_expression "pMVar14 = (MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420)" identifier = (cast_expression "(MHD_Daemon *)**(undefined4 **)(pcVar24 + 0x25420)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar24 + 0x25420)" * (pointer_expression "*(undefined4 **)(pcVar24 + 0x25420)" * (cast_expression "(undefined4 **)(pcVar24 + 0x25420)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25420)" ( (binary_expression "pcVar24 + 0x25420" identifier + number_literal) ))))))) ;) (expression_statement "sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0;" (assignment_expression "sVar16 = *(int *)(pcVar24 + 0x25414) - 0x39b0" identifier = (binary_expression "*(int *)(pcVar24 + 0x25414) - 0x39b0" (pointer_expression "*(int *)(pcVar24 + 0x25414)" * (cast_expression "(int *)(pcVar24 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x25414)" ( (binary_expression "pcVar24 + 0x25414" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428);" (assignment_expression "pcVar23 = (code *)**(undefined4 **)(pcVar24 + 0x25428)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar24 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar24 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar24 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar24 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x25428)" ( (binary_expression "pcVar24 + 0x25428" identifier + number_literal) ))))))) ;) (expression_statement "uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0;" (assignment_expression "uVar15 = *(int *)(pcVar24 + 0x25414) - 0x40a0" identifier = (binary_expression "*(int *)(pcVar24 + 0x25414) - 0x40a0" (pointer_expression "*(int *)(pcVar24 + 0x25414)" * (cast_expression "(int *)(pcVar24 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x25414)" ( (binary_expression "pcVar24 + 0x25414" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar20 = *(int **)(pcVar23 + 0x254e8);" (assignment_expression "piVar20 = *(int **)(pcVar23 + 0x254e8)" identifier = (pointer_expression "*(int **)(pcVar23 + 0x254e8)" * (cast_expression "(int **)(pcVar23 + 0x254e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254e8)" ( (binary_expression "pcVar23 + 0x254e8" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff;" (assignment_expression "uVar22 = (uint)(pcVar24 + 0x2d3e8) & 0xff" identifier = (binary_expression "(uint)(pcVar24 + 0x2d3e8) & 0xff" (call_expression "(uint)(pcVar24 + 0x2d3e8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar24 + 0x2d3e8)" ( (binary_expression "pcVar24 + 0x2d3e8" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "pMVar21 = (MHD_mutex_ *)(uint)_Stack_79;" (assignment_expression "pMVar21 = (MHD_mutex_ *)(uint)_Stack_79" identifier = (cast_expression "(MHD_mutex_ *)(uint)_Stack_79" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)_Stack_79" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iStack_bc = *piVar20;" (assignment_expression "iStack_bc = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "iStack_b8 = iVar11;" (assignment_expression "iStack_b8 = iVar11" identifier = identifier) ;) (expression_statement "piStack_b4 = piVar19;" (assignment_expression "piStack_b4 = piVar19" identifier = identifier) ;) (expression_statement "pMStack_b0 = unaff_s2;" (assignment_expression "pMStack_b0 = unaff_s2" identifier = identifier) ;) (expression_statement "pMStack_ac = unaff_s3;" (assignment_expression "pMStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "iStack_a8 = unaff_s4;" (assignment_expression "iStack_a8 = unaff_s4" identifier = identifier) ;) (if_statement "if ((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar22 = pMVar14->worker_pool_size;\n    if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" if (parenthesized_expression "((uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0))" ( (binary_expression "(uVar22 != 0) && (pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)" (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0)" ( (comma_expression "pMVar18 = pMVar14->worker_pool, pMVar18 != (MHD_Daemon *)0x0" (assignment_expression "pMVar18 = pMVar14->worker_pool" identifier = (field_expression "pMVar14->worker_pool" identifier -> field_identifier)) , (binary_expression "pMVar18 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    uVar22 = pMVar14->worker_pool_size;\n    if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" { (expression_statement "uVar22 = pMVar14->worker_pool_size;" (assignment_expression "uVar22 = pMVar14->worker_pool_size" identifier = (field_expression "pMVar14->worker_pool_size" identifier -> field_identifier)) ;) (if_statement "if (uVar22 != 0) {\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar22 == 0) {\n        trap(7);\n      }\n      pMVar13 = pMVar18 + uVar15 % uVar22;\n      if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar22 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pMVar13 = pMVar18 + uVar15 % uVar22;" (assignment_expression "pMVar13 = pMVar18 + uVar15 % uVar22" identifier = (binary_expression "pMVar18 + uVar15 % uVar22" identifier + (binary_expression "uVar15 % uVar22" identifier % identifier))) ;) (if_statement "if (pMVar13->connection_limit <= pMVar13->connections) {\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }" if (parenthesized_expression "(pMVar13->connection_limit <= pMVar13->connections)" ( (binary_expression "pMVar13->connection_limit <= pMVar13->connections" (field_expression "pMVar13->connection_limit" identifier -> field_identifier) <= (field_expression "pMVar13->connections" identifier -> field_identifier)) )) (compound_statement "{\n        uVar2 = uVar15;\n        do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);\n      }" { (expression_statement "uVar2 = uVar15;" (assignment_expression "uVar2 = uVar15" identifier = identifier) ;) (do_statement "do {\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        } while (pMVar13->connection_limit <= pMVar13->connections);" do (compound_statement "{\n          uVar2 = uVar2 + 1;\n          if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;\n          if (uVar22 == 0) {\n            trap(7);\n          }\n          pMVar13 = pMVar18 + uVar2 % uVar22;\n        }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar15 + uVar22 == uVar2) goto LAB_00019ee8;" if (parenthesized_expression "(uVar15 + uVar22 == uVar2)" ( (binary_expression "uVar15 + uVar22 == uVar2" (binary_expression "uVar15 + uVar22" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar22 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pMVar13 = pMVar18 + uVar2 % uVar22;" (assignment_expression "pMVar13 = pMVar18 + uVar2 % uVar22" identifier = (binary_expression "pMVar18 + uVar2 % uVar22" identifier + (binary_expression "uVar2 % uVar22" identifier % identifier))) ;) }) while (parenthesized_expression "(pMVar13->connection_limit <= pMVar13->connections)" ( (binary_expression "pMVar13->connection_limit <= pMVar13->connections" (field_expression "pMVar13->connection_limit" identifier -> field_identifier) <= (field_expression "pMVar13->connections" identifier -> field_identifier)) )) ;) })) (expression_statement "unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79);" (assignment_expression "unaff_s5 = (MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79)" identifier = (cast_expression "(MHD_Daemon *)internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_add_connection(pMVar13,uVar15,addr,sVar16,true,_Stack_79)" identifier (argument_list "(pMVar13,uVar15,addr,sVar16,true,_Stack_79)" ( identifier , identifier , identifier , identifier , true , identifier ))))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;)) (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)) {\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar17 = 0x900, *piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x900, *piVar19 == 9)" ( (comma_expression "uVar17 = 0x900, *piVar19 == 9" (assignment_expression "uVar17 = 0x900" identifier = number_literal) , (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal)) ))) )) (compound_statement "{\n      puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\n      goto LAB_0001aa44;\n    }" { (expression_statement "puVar4 = *(undefined4 **)(pcVar23 + 0x25264);" (assignment_expression "puVar4 = *(undefined4 **)(pcVar23 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25264)" ( (binary_expression "pcVar23 + 0x25264" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))" ( (binary_expression "(0x3ff < (int)uVar15) &&\n     (pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" (parenthesized_expression "(0x3ff < (int)uVar15)" ( (binary_expression "0x3ff < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" ( (comma_expression "pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258),\n     (pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG" (assignment_expression "pMVar8 = *(MHD_Connection **)(pcVar23 + 0x25258)" identifier = (pointer_expression "*(MHD_Connection **)(pcVar23 + 0x25258)" * (cast_expression "(MHD_Connection **)(pcVar23 + 0x25258)" ( (type_descriptor "MHD_Connection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) ))))) , (binary_expression "(pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG" (parenthesized_expression "(pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "pMVar14->options & (MHD_USE_EPOLL|MHD_USE_POLL)" (field_expression "pMVar14->options" identifier -> field_identifier) & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) == identifier)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = pMVar14;" (assignment_expression "unaff_s5 = pMVar14" identifier = identifier) ;) (if_statement "if (pMVar14->connections == pMVar14->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar19 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(pMVar14->connections == pMVar14->connection_limit)" ( (binary_expression "pMVar14->connections == pMVar14->connection_limit" (field_expression "pMVar14->connections" identifier -> field_identifier) == (field_expression "pMVar14->connection_limit" identifier -> field_identifier)) )) (compound_statement "{\nLAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar19 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (labeled_statement "LAB_0001a190:\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));" statement_identifier : (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc));" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc))" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc))" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x38dc)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar17 = 0x93d, *piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x93d, *piVar19 == 9)" ( (comma_expression "uVar17 = 0x93d, *piVar19 == 9" (assignment_expression "uVar17 = 0x93d" identifier = number_literal) , (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*piVar19 = 0x17;" (assignment_expression "*piVar19 = 0x17" (pointer_expression "*piVar19" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pMVar18 = pMVar14->master;" (assignment_expression "pMVar18 = pMVar14->master" identifier = (field_expression "pMVar14->master" identifier -> field_identifier)) ;) (while_statement "while (pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar13;\n    pMVar18 = pMVar13->master;\n  }" while (parenthesized_expression "(pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0)" ( (comma_expression "pMVar13 = pMVar18, pMVar13 != (MHD_Daemon *)0x0" (assignment_expression "pMVar13 = pMVar18" identifier = identifier) , (binary_expression "pMVar13 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    unaff_s5 = pMVar13;\n    pMVar18 = pMVar13->master;\n  }" { (expression_statement "unaff_s5 = pMVar13;" (assignment_expression "unaff_s5 = pMVar13" identifier = identifier) ;) (expression_statement "pMVar18 = pMVar13->master;" (assignment_expression "pMVar18 = pMVar13->master" identifier = (field_expression "pMVar13->master" identifier -> field_identifier)) ;) })) (if_statement "if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);\n    if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n  }" if (parenthesized_expression "(unaff_s5->per_ip_connection_limit != 0)" ( (binary_expression "unaff_s5->per_ip_connection_limit != 0" (field_expression "unaff_s5->per_ip_connection_limit" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);\n    if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18);" (assignment_expression "unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18)" identifier = (cast_expression "(MHD_Connection *)(**(code **)(pcVar23 + 0x25458))(0x18)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25458))(0x18)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25458))" ( (pointer_expression "**(code **)(pcVar23 + 0x25458)" * (pointer_expression "*(code **)(pcVar23 + 0x25458)" * (cast_expression "(code **)(pcVar23 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25458)" ( (binary_expression "pcVar23 + 0x25458" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8);" (assignment_expression "iVar3 = MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8)" identifier = (call_expression "MHD_ip_addr_to_key(addr,sVar16,(MHD_IPCount *)unaff_s8)" identifier (argument_list "(addr,sVar16,(MHD_IPCount *)unaff_s8)" ( identifier , identifier , (cast_expression "(MHD_IPCount *)unaff_s8" ( (type_descriptor "MHD_IPCount *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar13;\n      iVar3 = (**(code **)(pcVar23 + 0x254a4))();\n      if (iVar3 != 0) goto LAB_0001ab68;\n      puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);\n      if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar13);\nLAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);\n      iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar19 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;" (assignment_expression "pMVar13 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex" identifier = (cast_expression "(MHD_Daemon *)&unaff_s5->per_ip_connection_mutex" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s5->per_ip_connection_mutex" & (field_expression "unaff_s5->per_ip_connection_mutex" identifier -> field_identifier)))) ;) (expression_statement "pMVar18 = pMVar13;" (assignment_expression "pMVar18 = pMVar13" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x254a4))();" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x254a4))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x254a4))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254a4)" * (pointer_expression "*(code **)(pcVar23 + 0x254a4)" * (cast_expression "(code **)(pcVar23 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254a4)" ( (binary_expression "pcVar23 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054);" (assignment_expression "puVar4 = (undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054)" identifier = (cast_expression "(undefined4 *)\n               (**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25410))\n                         (unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25410))" ( (pointer_expression "**(code **)(pcVar23 + 0x25410)" * (pointer_expression "*(code **)(pcVar23 + 0x25410)" * (cast_expression "(code **)(pcVar23 + 0x25410)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25410)" ( (binary_expression "pcVar23 + 0x25410" identifier + number_literal) ))))) )) (argument_list "(unaff_s8,&unaff_s5->per_ip_connection_count,\n                          *(int *)(pcVar23 + 0x25280) + -0x7054)" ( identifier , (pointer_expression "&unaff_s5->per_ip_connection_count" & (field_expression "unaff_s5->per_ip_connection_count" identifier -> field_identifier)) , (binary_expression "*(int *)(pcVar23 + 0x25280) + -0x7054" (pointer_expression "*(int *)(pcVar23 + 0x25280)" * (cast_expression "(int *)(pcVar23 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25280)" ( (binary_expression "pcVar23 + 0x25280" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (puVar4 == (undefined4 *)0x0) {\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar4 == (undefined4 *)0x0)" ( (binary_expression "puVar4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar8);\n        iVar3 = (**(code **)(pcVar23 + 0x25538))();\n        if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904);" (assignment_expression "pMVar8 = (MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904)" identifier = (cast_expression "(MHD_Connection *)(*(int *)(pcVar23 + 0x25258) + -0x3904)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x3904)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x3904" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(unaff_s5,(char *)pMVar8);" (call_expression "MHD_DLOG(unaff_s5,(char *)pMVar8)" identifier (argument_list "(unaff_s5,(char *)pMVar8)" ( identifier , (cast_expression "(char *)pMVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25538))();" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25538))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x25538))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25538))" ( (pointer_expression "**(code **)(pcVar23 + 0x25538)" * (pointer_expression "*(code **)(pcVar23 + 0x25538)" * (cast_expression "(code **)(pcVar23 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25538)" ( (binary_expression "pcVar23 + 0x25538" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        pMVar8 = (MHD_Connection *)*puVar4;\n        if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }\n        pcVar24 = *(code **)(pcVar23 + 0x25538);\n        if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "pMVar8 = (MHD_Connection *)*puVar4;" (assignment_expression "pMVar8 = (MHD_Connection *)*puVar4" identifier = (cast_expression "(MHD_Connection *)*puVar4" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (if_statement "if (unaff_s8 != pMVar8) {\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != pMVar8)" ( (binary_expression "unaff_s8 != pMVar8" identifier != identifier) )) (compound_statement "{\n          (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n        }" { (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25538);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25538)" * (cast_expression "(code **)(pcVar23 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25538)" ( (binary_expression "pcVar23 + 0x25538" identifier + number_literal) ))))) ;) (if_statement "if (pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "(pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit)" ( (binary_expression "pMVar8->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit" (field_expression "pMVar8->prevX" identifier -> field_identifier) < (cast_expression "(MHD_Connection *)unaff_s5->per_ip_connection_limit" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s5->per_ip_connection_limit" identifier -> field_identifier))) )) (compound_statement "{\n          pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_00019f70;\n        }" { (expression_statement "pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1);" (assignment_expression "pMVar8->prevX = (MHD_Connection *)((int)&pMVar8->prevX->nextE + 1)" (field_expression "pMVar8->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)((int)&pMVar8->prevX->nextE + 1)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pMVar8->prevX->nextE + 1)" ( (binary_expression "(int)&pMVar8->prevX->nextE + 1" (cast_expression "(int)&pMVar8->prevX->nextE" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pMVar8->prevX->nextE" & (field_expression "pMVar8->prevX->nextE" (field_expression "pMVar8->prevX" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar3 = (*pcVar24)();" (assignment_expression "iVar3 = (*pcVar24)()" identifier = (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar3 = (*pcVar24)();\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar3 = (*pcVar24)();" (assignment_expression "iVar3 = (*pcVar24)()" identifier = (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "MHD_ip_count_unlock(pMVar13);" (call_expression "MHD_ip_count_unlock(pMVar13)" identifier (argument_list "(pMVar13)" ( identifier ))) ;) (labeled_statement "LAB_0001a2ec:\n      MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);" statement_identifier : (expression_statement "MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400);" (call_expression "MHD_DLOG(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400)" identifier (argument_list "(pMVar14,(char *)&pMVar8[-0x3a].current_chunk_size,uVar15,0x400)" ( identifier , (cast_expression "(char *)&pMVar8[-0x3a].current_chunk_size" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar8[-0x3a].current_chunk_size" & (field_expression "pMVar8[-0x3a].current_chunk_size" (subscript_expression "pMVar8[-0x3a]" identifier [ number_literal ]) . field_identifier))) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (*piVar19 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar3 != 0) && (*piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (*piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar19 == 9)" ( (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar19 = 0x16;" (assignment_expression "*piVar19 = 0x16" (pointer_expression "*piVar19" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0))" ( (binary_expression "(pMVar14->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)" (parenthesized_expression "(pMVar14->apc != (MHD_AcceptPolicyCallback)0x0)" ( (binary_expression "pMVar14->apc != (MHD_AcceptPolicyCallback)0x0" (field_expression "pMVar14->apc" identifier -> field_identifier) != (cast_expression "(MHD_AcceptPolicyCallback)0x0" ( (type_descriptor "MHD_AcceptPolicyCallback" type_identifier) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0)" ( (comma_expression "unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16),\n     unaff_s5 == (MHD_Daemon *)0x0" (assignment_expression "unaff_s5 = (MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16)" identifier = (cast_expression "(MHD_Daemon *)(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pMVar14->apc)(pMVar14->apc_cls,addr,sVar16)" (parenthesized_expression "(*pMVar14->apc)" ( (pointer_expression "*pMVar14->apc" * (field_expression "pMVar14->apc" identifier -> field_identifier)) )) (argument_list "(pMVar14->apc_cls,addr,sVar16)" ( (field_expression "pMVar14->apc_cls" identifier -> field_identifier) , identifier , identifier ))))) , (binary_expression "unaff_s5 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      uVar17 = 0x950;\n      if (*piVar19 == 9) goto LAB_0001aa40;\n    }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = 0x950;" (assignment_expression "uVar17 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar19 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar19 == 9)" ( (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100);" (assignment_expression "unaff_s8 = (MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100)" identifier = (cast_expression "(MHD_Connection *)(**(code **)(pcVar23 + 0x25340))(1,0x100)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25340))(1,0x100)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25340))" ( (pointer_expression "**(code **)(pcVar23 + 0x25340)" * (pointer_expression "*(code **)(pcVar23 + 0x25340)" * (cast_expression "(code **)(pcVar23 + 0x25340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25340)" ( (binary_expression "pcVar23 + 0x25340" identifier + number_literal) ))))) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar21 = (MHD_mutex_ *)*piVar19;" (assignment_expression "pMVar21 = (MHD_mutex_ *)*piVar19" identifier = (cast_expression "(MHD_mutex_ *)*piVar19" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);" (assignment_expression "uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25450))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25450))" ( (pointer_expression "**(code **)(pcVar23 + 0x25450)" * (pointer_expression "*(code **)(pcVar23 + 0x25450)" * (cast_expression "(code **)(pcVar23 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25450)" ( (binary_expression "pcVar23 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier )))) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar17 = 0x962, *piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x962, *piVar19 == 9)" ( (comma_expression "uVar17 = 0x962, *piVar19 == 9" (assignment_expression "uVar17 = 0x962" identifier = number_literal) , (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar19 = (int)pMVar21;" (assignment_expression "*piVar19 = (int)pMVar21" (pointer_expression "*piVar19" * identifier) = (cast_expression "(int)pMVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pMVar5 = MHD_pool_create(pMVar14->pool_size);" (assignment_expression "pMVar5 = MHD_pool_create(pMVar14->pool_size)" identifier = (call_expression "MHD_pool_create(pMVar14->pool_size)" identifier (argument_list "(pMVar14->pool_size)" ( (field_expression "pMVar14->pool_size" identifier -> field_identifier) )))) ;) (expression_statement "unaff_s8->pool = pMVar5;" (assignment_expression "unaff_s8->pool = pMVar5" (field_expression "unaff_s8->pool" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar5 == (MemoryPool *)0x0) {\n    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (pMVar21->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(pMVar5 == (MemoryPool *)0x0)" ( (binary_expression "pMVar5 == (MemoryPool *)0x0" identifier == (cast_expression "(MemoryPool *)0x0" ( (type_descriptor "MemoryPool *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (pMVar21->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "pMVar21 = (MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(MHD_mutex_ *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock);" (assignment_expression "uVar17 = (**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25450))((pMVar21->__data).__lock)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25450))" ( (pointer_expression "**(code **)(pcVar23 + 0x25450)" * (pointer_expression "*(code **)(pcVar23 + 0x25450)" * (cast_expression "(code **)(pcVar23 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25450)" ( (binary_expression "pcVar23 + 0x25450" identifier + number_literal) ))))) )) (argument_list "((pMVar21->__data).__lock)" ( (field_expression "(pMVar21->__data).__lock" (parenthesized_expression "(pMVar21->__data)" ( (field_expression "pMVar21->__data" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9))" ( (binary_expression "(iVar3 != 0) && (uVar17 = 0x971, (pMVar21->__data).__lock == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x971, (pMVar21->__data).__lock == 9)" ( (comma_expression "uVar17 = 0x971, (pMVar21->__data).__lock == 9" (assignment_expression "uVar17 = 0x971" identifier = number_literal) , (binary_expression "(pMVar21->__data).__lock == 9" (field_expression "(pMVar21->__data).__lock" (parenthesized_expression "(pMVar21->__data)" ( (field_expression "pMVar21->__data" identifier -> field_identifier) )) . field_identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(pMVar21->__data).__lock = 0xc;" (assignment_expression "(pMVar21->__data).__lock = 0xc" (field_expression "(pMVar21->__data).__lock" (parenthesized_expression "(pMVar21->__data)" ( (field_expression "pMVar21->__data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25458);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25458)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25458)" * (cast_expression "(code **)(pcVar23 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25458)" ( (binary_expression "pcVar23 + 0x25458" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8->connection_timeout = pMVar14->connection_timeout;" (assignment_expression "unaff_s8->connection_timeout = pMVar14->connection_timeout" (field_expression "unaff_s8->connection_timeout" identifier -> field_identifier) = (field_expression "pMVar14->connection_timeout" identifier -> field_identifier)) ;) (expression_statement "psVar6 = (sockaddr *)(*pcVar24)(sVar16);" (assignment_expression "psVar6 = (sockaddr *)(*pcVar24)(sVar16)" identifier = (cast_expression "(sockaddr *)(*pcVar24)(sVar16)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar24)(sVar16)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(sVar16)" ( identifier ))))) ;) (expression_statement "unaff_s8->addr = psVar6;" (assignment_expression "unaff_s8->addr = psVar6" (field_expression "unaff_s8->addr" identifier -> field_identifier) = identifier) ;) (if_statement "if (psVar6 == (sockaddr *)0x0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    MHD_pool_destroy(unaff_s8->pool);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(psVar6 == (sockaddr *)0x0)" ( (binary_expression "psVar6 == (sockaddr *)0x0" identifier == (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    pMVar21 = (MHD_mutex_ *)*piVar19;\n    uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);\n    MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    MHD_pool_destroy(unaff_s8->pool);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    *piVar19 = (int)pMVar21;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar21 = (MHD_mutex_ *)*piVar19;" (assignment_expression "pMVar21 = (MHD_mutex_ *)*piVar19" identifier = (cast_expression "(MHD_mutex_ *)*piVar19" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21);" (assignment_expression "uVar17 = (**(code **)(pcVar23 + 0x25450))(pMVar21)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25450))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25450))" ( (pointer_expression "**(code **)(pcVar23 + 0x25450)" * (pointer_expression "*(code **)(pcVar23 + 0x25450)" * (cast_expression "(code **)(pcVar23 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25450)" ( (binary_expression "pcVar23 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier )))) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c),uVar17)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x389c)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar17 = 0x985, *piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x985, *piVar19 == 9)" ( (comma_expression "uVar17 = 0x985, *piVar19 == 9" (assignment_expression "uVar17 = 0x985" identifier = number_literal) , (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "MHD_pool_destroy(unaff_s8->pool);" (call_expression "MHD_pool_destroy(unaff_s8->pool)" identifier (argument_list "(unaff_s8->pool)" ( (field_expression "unaff_s8->pool" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar19 = (int)pMVar21;" (assignment_expression "*piVar19 = (int)pMVar21" (pointer_expression "*piVar19" * identifier) = (cast_expression "(int)pMVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16);" (call_expression "(**(code **)(pcVar23 + 0x254ec))(psVar6,addr,sVar16)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254ec))" ( (pointer_expression "**(code **)(pcVar23 + 0x254ec)" * (pointer_expression "*(code **)(pcVar23 + 0x254ec)" * (cast_expression "(code **)(pcVar23 + 0x254ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254ec)" ( (binary_expression "pcVar23 + 0x254ec" identifier + number_literal) ))))) )) (argument_list "(psVar6,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8->addr_len = sVar16;" (assignment_expression "unaff_s8->addr_len = sVar16" (field_expression "unaff_s8->addr_len" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->socket_fd = uVar15;" (assignment_expression "unaff_s8->socket_fd = uVar15" (field_expression "unaff_s8->socket_fd" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->sk_nonblck = _Stack_79;" (assignment_expression "unaff_s8->sk_nonblck = _Stack_79" (field_expression "unaff_s8->sk_nonblck" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->daemon = pMVar14;" (assignment_expression "unaff_s8->daemon = pMVar14" (field_expression "unaff_s8->daemon" identifier -> field_identifier) = identifier) ;) (expression_statement "tVar7 = MHD_monotonic_sec_counter();" (assignment_expression "tVar7 = MHD_monotonic_sec_counter()" identifier = (call_expression "MHD_monotonic_sec_counter()" identifier (argument_list "()" ( )))) ;) (expression_statement "MVar9 = pMVar14->options;" (assignment_expression "MVar9 = pMVar14->options" identifier = (field_expression "pMVar14->options" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->last_activity = tVar7;" (assignment_expression "unaff_s8->last_activity = tVar7" (field_expression "unaff_s8->last_activity" identifier -> field_identifier) = identifier) ;) (if_statement "if ((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n    uVar17 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }" if (parenthesized_expression "((MVar9 & MHD_USE_SSL) == MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_SSL) == MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_SSL)" ( (binary_expression "MVar9 & MHD_USE_SSL" identifier & identifier) )) == identifier) )) (compound_statement "{\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);\n    uVar17 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "MHD_set_http_callbacks_(unaff_s8);" (call_expression "MHD_set_http_callbacks_(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    pMVar21 = &pMVar14->cleanup_connection_mutex;" statement_identifier : (expression_statement "pMVar21 = &pMVar14->cleanup_connection_mutex;" (assignment_expression "pMVar21 = &pMVar14->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar14->cleanup_connection_mutex" & (field_expression "pMVar14->cleanup_connection_mutex" identifier -> field_identifier))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21)" identifier = (call_expression "(**(code **)(pcVar23 + 0x254a4))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254a4)" * (pointer_expression "*(code **)(pcVar23 + 0x254a4)" * (cast_expression "(code **)(pcVar23 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254a4)" ( (binary_expression "pcVar23 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier )))) ;) (expression_statement "uVar17 = 0x9e4;" (assignment_expression "uVar17 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (pMVar14->connections < pMVar14->connection_limit) {\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(pMVar14->connections < pMVar14->connection_limit)" ( (binary_expression "pMVar14->connections < pMVar14->connection_limit" (field_expression "pMVar14->connections" identifier -> field_identifier) < (field_expression "pMVar14->connection_limit" identifier -> field_identifier)) )) (compound_statement "{\n      pMVar14->connections = pMVar14->connections + 1;\n      if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }\n      pMVar8 = pMVar14->connections_head;\n      pMVar10 = pMVar14->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar8;\n      if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }\n      pcVar24 = *(code **)(pcVar23 + 0x25538);\n      pMVar14->connections_head = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar21);\n      uVar17 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar9 = pMVar14->options;\n      if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      pMStack_c8 = unaff_s8;\n      iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n      unaff_s5 = (MHD_Daemon *)*piVar19;\n      uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n      MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);\n      goto LAB_0001a72c;\n    }" { (expression_statement "pMVar14->connections = pMVar14->connections + 1;" (assignment_expression "pMVar14->connections = pMVar14->connections + 1" (field_expression "pMVar14->connections" identifier -> field_identifier) = (binary_expression "pMVar14->connections + 1" (field_expression "pMVar14->connections" identifier -> field_identifier) + number_literal)) ;) (if_statement "if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }" if (parenthesized_expression "((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(pMVar14->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar14->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar14->options" identifier -> field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n        pMVar8 = pMVar14->normal_timeout_head;\n        pMVar10 = pMVar14->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar8;\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }\n        pMVar14->normal_timeout_head = unaff_s8;\n      }" { (expression_statement "pMVar8 = pMVar14->normal_timeout_head;" (assignment_expression "pMVar8 = pMVar14->normal_timeout_head" identifier = (field_expression "pMVar14->normal_timeout_head" identifier -> field_identifier)) ;) (expression_statement "pMVar10 = pMVar14->normal_timeout_tail;" (assignment_expression "pMVar10 = pMVar14->normal_timeout_tail" identifier = (field_expression "pMVar14->normal_timeout_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prevX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevX = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->nextX = pMVar8;" (assignment_expression "unaff_s8->nextX = pMVar8" (field_expression "unaff_s8->nextX" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar8->prevX = unaff_s8;\n        }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar14->normal_timeout_tail = unaff_s8;\n        }" { (expression_statement "pMVar14->normal_timeout_tail = unaff_s8;" (assignment_expression "pMVar14->normal_timeout_tail = unaff_s8" (field_expression "pMVar14->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar8->prevX = unaff_s8;\n        }" else (compound_statement "{\n          pMVar8->prevX = unaff_s8;\n        }" { (expression_statement "pMVar8->prevX = unaff_s8;" (assignment_expression "pMVar8->prevX = unaff_s8" (field_expression "pMVar8->prevX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar14->normal_timeout_head = unaff_s8;" (assignment_expression "pMVar14->normal_timeout_head = unaff_s8" (field_expression "pMVar14->normal_timeout_head" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pMVar8 = pMVar14->connections_head;" (assignment_expression "pMVar8 = pMVar14->connections_head" identifier = (field_expression "pMVar14->connections_head" identifier -> field_identifier)) ;) (expression_statement "pMVar10 = pMVar14->connections_tail;" (assignment_expression "pMVar10 = pMVar14->connections_tail" identifier = (field_expression "pMVar14->connections_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prev = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prev = (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->next = pMVar8;" (assignment_expression "unaff_s8->next = pMVar8" (field_expression "unaff_s8->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n        pMVar14->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar8->prev = unaff_s8;\n      }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar14->connections_tail = unaff_s8;\n      }" { (expression_statement "pMVar14->connections_tail = unaff_s8;" (assignment_expression "pMVar14->connections_tail = unaff_s8" (field_expression "pMVar14->connections_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        pMVar8->prev = unaff_s8;\n      }" else (compound_statement "{\n        pMVar8->prev = unaff_s8;\n      }" { (expression_statement "pMVar8->prev = unaff_s8;" (assignment_expression "pMVar8->prev = unaff_s8" (field_expression "pMVar8->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25538);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25538)" * (cast_expression "(code **)(pcVar23 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25538)" ( (binary_expression "pcVar23 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "pMVar14->connections_head = unaff_s8;" (assignment_expression "pMVar14->connections_head = unaff_s8" (field_expression "pMVar14->connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar24)(pMVar21);" (assignment_expression "iVar3 = (*pcVar24)(pMVar21)" identifier = (call_expression "(*pcVar24)(pMVar21)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pMVar21)" ( identifier )))) ;) (expression_statement "uVar17 = 0xa01;" (assignment_expression "uVar17 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }" if (parenthesized_expression "(pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0)" ( (binary_expression "pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0" (field_expression "pMVar14->notify_connection" identifier -> field_identifier) != (cast_expression "(MHD_NotifyConnectionCallback)0x0" ( (type_descriptor "MHD_NotifyConnectionCallback" type_identifier) ) number_literal)) )) (compound_statement "{\n        (*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }" { (expression_statement "(*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);" (call_expression "(*pMVar14->notify_connection)\n                  (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED)" (parenthesized_expression "(*pMVar14->notify_connection)" ( (pointer_expression "*pMVar14->notify_connection" * (field_expression "pMVar14->notify_connection" identifier -> field_identifier)) )) (argument_list "(pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED)" ( (field_expression "pMVar14->notify_connection_cls" identifier -> field_identifier) , identifier , (pointer_expression "&unaff_s8->socket_context" & (field_expression "unaff_s8->socket_context" identifier -> field_identifier)) , identifier ))) ;) })) (expression_statement "MVar9 = pMVar14->options;" (assignment_expression "MVar9 = pMVar14->options" identifier = (field_expression "pMVar14->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar9 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) )) (compound_statement "{\n        MVar12 = (pMVar14->pid).ID;\n        (unaff_s8->pid).handle = (pMVar14->pid).handle;\n        (unaff_s8->pid).ID = MVar12;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "MVar12 = (pMVar14->pid).ID;" (assignment_expression "MVar12 = (pMVar14->pid).ID" identifier = (field_expression "(pMVar14->pid).ID" (parenthesized_expression "(pMVar14->pid)" ( (field_expression "pMVar14->pid" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(unaff_s8->pid).handle = (pMVar14->pid).handle;" (assignment_expression "(unaff_s8->pid).handle = (pMVar14->pid).handle" (field_expression "(unaff_s8->pid).handle" (parenthesized_expression "(unaff_s8->pid)" ( (field_expression "unaff_s8->pid" identifier -> field_identifier) )) . field_identifier) = (field_expression "(pMVar14->pid).handle" (parenthesized_expression "(pMVar14->pid)" ( (field_expression "pMVar14->pid" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(unaff_s8->pid).ID = MVar12;" (assignment_expression "(unaff_s8->pid).ID = MVar12" (field_expression "(unaff_s8->pid).ID" (parenthesized_expression "(unaff_s8->pid)" ( (field_expression "unaff_s8->pid" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_EPOLL)" ( (binary_expression "MVar9 & MHD_USE_EPOLL" identifier & identifier) )) == identifier) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (uVar22 == 0) goto LAB_0001a1e8;\n          iVar3 = (pMVar14->itc).fd;\n          if (iVar3 == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar22 == 0) goto LAB_0001a1e8;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar3 = (pMVar14->itc).fd;" (assignment_expression "iVar3 = (pMVar14->itc).fd" identifier = (field_expression "(pMVar14->itc).fd" (parenthesized_expression "(pMVar14->itc)" ( (field_expression "pMVar14->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (iVar3 == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar23 + 0x2541c))(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x2541c))" ( (pointer_expression "**(code **)(pcVar23 + 0x2541c)" * (pointer_expression "*(code **)(pcVar23 + 0x2541c)" * (cast_expression "(code **)(pcVar23 + 0x2541c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x2541c)" ( (binary_expression "pcVar23 + 0x2541c" identifier + number_literal) ))))) )) (argument_list "(iVar3,*(int *)(pcVar23 + 0x25258) + -0x28d8,8)" ( identifier , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x28d8" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if ((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))\n          {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb))" ( (binary_expression "(iVar3 < 1) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb)" (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb)" ( (comma_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 != 0xb" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar19 != 0xb" (pointer_expression "*piVar19" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4));" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4))" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4))" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x37f4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x37f4)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x37f4" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);\n        if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar9 = pMVar14->options;\n        if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8);" (assignment_expression "iVar3 = MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8)" identifier = (call_expression "MHD_create_named_thread_\n                          (&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8)" identifier (argument_list "(&unaff_s8->pid,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824),\n                           pMVar14->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c),\n                           unaff_s8)" ( (pointer_expression "&unaff_s8->pid" & (field_expression "unaff_s8->pid" identifier -> field_identifier)) , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x3824)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x3824)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x3824" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , (field_expression "pMVar14->thread_stack_size" identifier -> field_identifier) , (call_expression "(MHD_THREAD_START_ROUTINE_)(*(int *)(pcVar23 + 0x25280) + -0x445c)" (parenthesized_expression "(MHD_THREAD_START_ROUTINE_)" ( identifier )) (argument_list "(*(int *)(pcVar23 + 0x25280) + -0x445c)" ( (binary_expression "*(int *)(pcVar23 + 0x25280) + -0x445c" (pointer_expression "*(int *)(pcVar23 + 0x25280)" * (cast_expression "(int *)(pcVar23 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25280)" ( (binary_expression "pcVar23 + 0x25280" identifier + number_literal) )))) + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n          unaff_s5 = (MHD_Daemon *)*piVar19;\n          uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);\n          MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)*piVar19;" (assignment_expression "unaff_s5 = (MHD_Daemon *)*piVar19" identifier = (cast_expression "(MHD_Daemon *)*piVar19" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);" (assignment_expression "uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25450))" ( (pointer_expression "**(code **)(pcVar23 + 0x25450)" * (pointer_expression "*(code **)(pcVar23 + 0x25450)" * (cast_expression "(code **)(pcVar23 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25450)" ( (binary_expression "pcVar23 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814),uVar17)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x3814)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x3814)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x3814" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "MVar9 = pMVar14->options;" (assignment_expression "MVar9 = pMVar14->options" identifier = (field_expression "pMVar14->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_EPOLL) == MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_EPOLL)" ( (binary_expression "MVar9 & MHD_USE_EPOLL" identifier & identifier) )) == identifier) )) (compound_statement "{\n          if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;" if (parenthesized_expression "((MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar9 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if ((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG) {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }\n      else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" if (parenthesized_expression "((MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG)" ( (binary_expression "(MVar9 & MHD_USE_EPOLL_TURBO) == MHD_NO_FLAG" (parenthesized_expression "(MVar9 & MHD_USE_EPOLL_TURBO)" ( (binary_expression "MVar9 & MHD_USE_EPOLL_TURBO" identifier & identifier) )) == identifier) )) (compound_statement "{\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n      }" { (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25474);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25474)" * (cast_expression "(code **)(pcVar23 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25474)" ( (binary_expression "pcVar23 + 0x25474" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" else (compound_statement "{\n        pcVar24 = *(code **)(pcVar23 + 0x25474);\n        if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25474);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25474)" * (cast_expression "(code **)(pcVar23 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25474)" ( (binary_expression "pcVar23 + 0x25474" identifier + number_literal) ))))) ;) (if_statement "if (uVar22 == 0) {\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          pMVar8 = pMVar14->eready_head;\n          pMVar10 = pMVar14->eready_tail;\n          unaff_s8->prevE = (MHD_Connection *)0x0;\n          unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);\n          unaff_s8->nextE = pMVar8;\n          if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          pMVar8->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          pMVar14->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "pMVar8 = pMVar14->eready_head;" (assignment_expression "pMVar8 = pMVar14->eready_head" identifier = (field_expression "pMVar14->eready_head" identifier -> field_identifier)) ;) (expression_statement "pMVar10 = pMVar14->eready_tail;" (assignment_expression "pMVar10 = pMVar14->eready_tail" identifier = (field_expression "pMVar14->eready_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prevE = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevE = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY);" (assignment_expression "unaff_s8->epoll_state =\n               unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY)" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) = (binary_expression "unaff_s8->epoll_state |\n               (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY)" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) | (parenthesized_expression "(MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|\n               MHD_EPOLL_STATE_READ_READY" (binary_expression "MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY" identifier | identifier) | identifier) )))) ;) (expression_statement "unaff_s8->nextE = pMVar8;" (assignment_expression "unaff_s8->nextE = pMVar8" (field_expression "unaff_s8->nextE" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pMVar14->eready_tail = unaff_s8;\n            unaff_s5 = (MHD_Daemon *)0x1;\n            pMVar14->eready_head = unaff_s8;\n            goto LAB_0001a1e8;\n          }" { (expression_statement "pMVar14->eready_tail = unaff_s8;" (assignment_expression "pMVar14->eready_tail = unaff_s8" (field_expression "pMVar14->eready_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar14->eready_head = unaff_s8;" (assignment_expression "pMVar14->eready_head = unaff_s8" (field_expression "pMVar14->eready_head" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pMVar8->prevE = unaff_s8;" (assignment_expression "pMVar8->prevE = unaff_s8" (field_expression "pMVar8->prevE" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar14->eready_head = unaff_s8;" (assignment_expression "pMVar14->eready_head = unaff_s8" (field_expression "pMVar14->eready_head" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }))) (expression_statement "auStack_d0[0] = 0x80000007;" (assignment_expression "auStack_d0[0] = 0x80000007" (subscript_expression "auStack_d0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pMStack_c8 = unaff_s8;" (assignment_expression "pMStack_c8 = unaff_s8" identifier = identifier) ;) (expression_statement "iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0);" (assignment_expression "iVar3 = (*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0)" identifier = (call_expression "(*pcVar24)(pMVar14->epoll_fd,1,uVar15,auStack_d0)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pMVar14->epoll_fd,1,uVar15,auStack_d0)" ( (field_expression "pMVar14->epoll_fd" identifier -> field_identifier) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;" (assignment_expression "unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) = (binary_expression "unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) | identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)*piVar19;" (assignment_expression "unaff_s5 = (MHD_Daemon *)*piVar19" identifier = (cast_expression "(MHD_Daemon *)*piVar19" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5);" (assignment_expression "uVar17 = (**(code **)(pcVar23 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25450))" ( (pointer_expression "**(code **)(pcVar23 + 0x25450)" * (pointer_expression "*(code **)(pcVar23 + 0x25450)" * (cast_expression "(code **)(pcVar23 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25450)" ( (binary_expression "pcVar23 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8),uVar17)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x4da8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x4da8)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x4da8" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }" else (compound_statement "{\n    pMVar21 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);\n    (**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);\n    (**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);\n    if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));\n    iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);\n    if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    MHD_ip_limit_del(pMVar14,addr,sVar16);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n    (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);\n  }" { (expression_statement "pMVar21 = (MHD_mutex_ *)0x1;" (assignment_expression "pMVar21 = (MHD_mutex_ *)0x1" identifier = (cast_expression "(MHD_mutex_ *)0x1" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->tls_state = MHD_TLS_CONN_INIT;" (assignment_expression "unaff_s8->tls_state = MHD_TLS_CONN_INIT" (field_expression "unaff_s8->tls_state" identifier -> field_identifier) = identifier) ;) (expression_statement "MHD_set_https_callbacks(unaff_s8);" (call_expression "MHD_set_https_callbacks(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49);" (call_expression "(**(code **)(pcVar23 + 0x25414))(&unaff_s8->tls_session,0x49)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25414))" ( (pointer_expression "**(code **)(pcVar23 + 0x25414)" * (pointer_expression "*(code **)(pcVar23 + 0x25414)" * (cast_expression "(code **)(pcVar23 + 0x25414)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25414)" ( (binary_expression "pcVar23 + 0x25414" identifier + number_literal) ))))) )) (argument_list "(&unaff_s8->tls_session,0x49)" ( (pointer_expression "&unaff_s8->tls_session" & (field_expression "unaff_s8->tls_session" identifier -> field_identifier)) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache);" (call_expression "(**(code **)(pcVar23 + 0x253ac))(unaff_s8->tls_session,pMVar14->priority_cache)" (parenthesized_expression "(**(code **)(pcVar23 + 0x253ac))" ( (pointer_expression "**(code **)(pcVar23 + 0x253ac)" * (pointer_expression "*(code **)(pcVar23 + 0x253ac)" * (cast_expression "(code **)(pcVar23 + 0x253ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x253ac)" ( (binary_expression "pcVar23 + 0x253ac" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,pMVar14->priority_cache)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , (field_expression "pMVar14->priority_cache" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x25454))(unaff_s8->tls_session,unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25454))" ( (pointer_expression "**(code **)(pcVar23 + 0x25454)" * (pointer_expression "*(code **)(pcVar23 + 0x25454)" * (cast_expression "(code **)(pcVar23 + 0x25454)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25454)" ( (binary_expression "pcVar23 + 0x25454" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,unaff_s8)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , identifier ))) ;) (if_statement "if (pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE)" ( (binary_expression "pMVar14->cred_type == GNUTLS_CRD_CERTIFICATE" (field_expression "pMVar14->cred_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);\nLAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);\n      if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred);" (call_expression "(**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,1,pMVar14->x509_cred)" (parenthesized_expression "(**(code **)(pcVar23 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar23 + 0x253d4)" * (pointer_expression "*(code **)(pcVar23 + 0x253d4)" * (cast_expression "(code **)(pcVar23 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x253d4)" ( (binary_expression "pcVar23 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,1,pMVar14->x509_cred)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal , (field_expression "pMVar14->x509_cred" identifier -> field_identifier) ))) ;) (labeled_statement "LAB_0001a950:\n      (**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);" statement_identifier : (expression_statement "(**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15);" (call_expression "(**(code **)(pcVar23 + 0x253e8))(unaff_s8->tls_session,uVar15,uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x253e8))" ( (pointer_expression "**(code **)(pcVar23 + 0x253e8)" * (pointer_expression "*(code **)(pcVar23 + 0x253e8)" * (cast_expression "(code **)(pcVar23 + 0x253e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x253e8)" ( (binary_expression "pcVar23 + 0x253e8" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,uVar15,uVar15)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , identifier , identifier ))) ;)) (if_statement "if (pMVar14->https_mem_trust != (char *)0x0) {\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }" if (parenthesized_expression "(pMVar14->https_mem_trust != (char *)0x0)" ( (binary_expression "pMVar14->https_mem_trust != (char *)0x0" (field_expression "pMVar14->https_mem_trust" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);\n      }" { (expression_statement "(**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1);" (call_expression "(**(code **)(pcVar23 + 0x25470))(unaff_s8->tls_session,1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25470))" ( (pointer_expression "**(code **)(pcVar23 + 0x25470)" * (pointer_expression "*(code **)(pcVar23 + 0x25470)" * (cast_expression "(code **)(pcVar23 + 0x25470)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25470)" ( (binary_expression "pcVar23 + 0x25470" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,1)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (pMVar14->cred_type == GNUTLS_CRD_PSK) {\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(pMVar14->cred_type == GNUTLS_CRD_PSK)" ( (binary_expression "pMVar14->cred_type == GNUTLS_CRD_PSK" (field_expression "pMVar14->cred_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      (**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);\n      (**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred);" (call_expression "(**(code **)(pcVar23 + 0x253d4))(unaff_s8->tls_session,4,pMVar14->psk_cred)" (parenthesized_expression "(**(code **)(pcVar23 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar23 + 0x253d4)" * (pointer_expression "*(code **)(pcVar23 + 0x253d4)" * (cast_expression "(code **)(pcVar23 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x253d4)" ( (binary_expression "pcVar23 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->tls_session,4,pMVar14->psk_cred)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal , (field_expression "pMVar14->psk_cred" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c);" (call_expression "(**(code **)(pcVar23 + 0x25434))(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25434))" ( (pointer_expression "**(code **)(pcVar23 + 0x25434)" * (pointer_expression "*(code **)(pcVar23 + 0x25434)" * (cast_expression "(code **)(pcVar23 + 0x25434)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25434)" ( (binary_expression "pcVar23 + 0x25434" identifier + number_literal) ))))) )) (argument_list "(pMVar14->psk_cred,*(int *)(pcVar23 + 0x25280) + -0x703c)" ( (field_expression "pMVar14->psk_cred" identifier -> field_identifier) , (binary_expression "*(int *)(pcVar23 + 0x25280) + -0x703c" (pointer_expression "*(int *)(pcVar23 + 0x25280)" * (cast_expression "(int *)(pcVar23 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25280)" ( (binary_expression "pcVar23 + 0x25280" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c));" (call_expression "MHD_DLOG(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c))" identifier (argument_list "(unaff_s8->daemon,(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c))" ( (field_expression "unaff_s8->daemon" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x387c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x387c)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x387c" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)) {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }" if (parenthesized_expression "((iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9))" ( (binary_expression "(iVar3 != 0) && (piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9)" ( (comma_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))(), *piVar19 == 9" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar17 = 0x9c3;\n      goto LAB_0001aa40;\n    }" { (expression_statement "uVar17 = 0x9c3;" (assignment_expression "uVar17 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;) })) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->addr)" ( (field_expression "unaff_s8->addr" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c);" (call_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x2526c)" ( (binary_expression "pcVar23 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar23 + 0x25258) + -0x383c)" ( (pointer_expression "**(undefined4 **)(pcVar23 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25264)" ( (binary_expression "pcVar23 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x383c" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25538))(pMVar21)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25538))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25538))" ( (pointer_expression "**(code **)(pcVar23 + 0x25538)" * (pointer_expression "*(code **)(pcVar23 + 0x25538)" * (cast_expression "(code **)(pcVar23 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25538)" ( (binary_expression "pcVar23 + 0x25538" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier )))) ;) (expression_statement "uVar17 = 0x9ea;" (assignment_expression "uVar17 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x17;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x17" identifier = (cast_expression "(MHD_Daemon *)0x17" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea);" (call_expression "MHD_DLOG(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea)" identifier (argument_list "(pMVar14,(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc),0x9ea)" ( identifier , (cast_expression "(char *)(*(int *)(pcVar23 + 0x25258) + -0x38dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + 0x25258) + -0x38dc)" ( (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" statement_identifier : (if_statement "if (pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" if (parenthesized_expression "(pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0)" ( (binary_expression "pMVar14->notify_connection != (MHD_NotifyConnectionCallback)0x0" (field_expression "pMVar14->notify_connection" identifier -> field_identifier) != (cast_expression "(MHD_NotifyConnectionCallback)0x0" ( (type_descriptor "MHD_NotifyConnectionCallback" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" { (expression_statement "(*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);" (call_expression "(*pMVar14->notify_connection)\n              (pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED)" (parenthesized_expression "(*pMVar14->notify_connection)" ( (pointer_expression "*pMVar14->notify_connection" * (field_expression "pMVar14->notify_connection" identifier -> field_identifier)) )) (argument_list "(pMVar14->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED)" ( (field_expression "pMVar14->notify_connection_cls" identifier -> field_identifier) , identifier , (pointer_expression "&unaff_s8->socket_context" & (field_expression "unaff_s8->socket_context" identifier -> field_identifier)) , identifier ))) ;) }))) (if_statement "if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (**(code **)(pcVar23 + 0x25534))();\n  }" if (parenthesized_expression "(unaff_s8->tls_session != (gnutls_session_t)0x0)" ( (binary_expression "unaff_s8->tls_session != (gnutls_session_t)0x0" (field_expression "unaff_s8->tls_session" identifier -> field_identifier) != (cast_expression "(gnutls_session_t)0x0" ( (type_descriptor "gnutls_session_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar23 + 0x25534))();\n  }" { (expression_statement "(**(code **)(pcVar23 + 0x25534))();" (call_expression "(**(code **)(pcVar23 + 0x25534))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25534))" ( (pointer_expression "**(code **)(pcVar23 + 0x25534)" * (pointer_expression "*(code **)(pcVar23 + 0x25534)" * (cast_expression "(code **)(pcVar23 + 0x25534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25534)" ( (binary_expression "pcVar23 + 0x25534" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x25354))(uVar15)" identifier = (call_expression "(**(code **)(pcVar23 + 0x25354))(uVar15)" (parenthesized_expression "(**(code **)(pcVar23 + 0x25354))" ( (pointer_expression "**(code **)(pcVar23 + 0x25354)" * (pointer_expression "*(code **)(pcVar23 + 0x25354)" * (cast_expression "(code **)(pcVar23 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25354)" ( (binary_expression "pcVar23 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar15)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = 0xa56;\n    if (*piVar19 == 9) goto LAB_0001aa40;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();\n    uVar17 = 0xa56;\n    if (*piVar19 == 9) goto LAB_0001aa40;\n  }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = 0xa56;" (assignment_expression "uVar17 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar19 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar19 == 9)" ( (binary_expression "*piVar19 == 9" (pointer_expression "*piVar19" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "MHD_ip_limit_del(pMVar14,addr,sVar16);" (call_expression "MHD_ip_limit_del(pMVar14,addr,sVar16)" identifier (argument_list "(pMVar14,addr,sVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x254a4))(pMVar21)" identifier = (call_expression "(**(code **)(pcVar23 + 0x254a4))(pMVar21)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254a4)" * (pointer_expression "*(code **)(pcVar23 + 0x254a4)" * (cast_expression "(code **)(pcVar23 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254a4)" ( (binary_expression "pcVar23 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(pMVar21)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;" if (parenthesized_expression "((pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(pMVar14->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(pMVar14->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar14->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar14->options" identifier -> field_identifier) & identifier) )) != identifier) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "pMVar8 = unaff_s8->nextX;" (assignment_expression "pMVar8 = unaff_s8->nextX" identifier = (field_expression "unaff_s8->nextX" identifier -> field_identifier)) ;) (if_statement "if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    pMVar14->normal_timeout_head = pMVar8;\n    pMVar10 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }" if (parenthesized_expression "(unaff_s8->prevX == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8->prevX == (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar14->normal_timeout_head = pMVar8;\n    pMVar10 = (MHD_Connection *)0x0;\n  }" { (expression_statement "pMVar14->normal_timeout_head = pMVar8;" (assignment_expression "pMVar14->normal_timeout_head = pMVar8" (field_expression "pMVar14->normal_timeout_head" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar10 = (MHD_Connection *)0x0;" (assignment_expression "pMVar10 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }" else (compound_statement "{\n    unaff_s8->prevX->nextX = pMVar8;\n    pMVar8 = unaff_s8->nextX;\n    pMVar10 = unaff_s8->prevX;\n  }" { (expression_statement "unaff_s8->prevX->nextX = pMVar8;" (assignment_expression "unaff_s8->prevX->nextX = pMVar8" (field_expression "unaff_s8->prevX->nextX" (field_expression "unaff_s8->prevX" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "pMVar8 = unaff_s8->nextX;" (assignment_expression "pMVar8 = unaff_s8->nextX" identifier = (field_expression "unaff_s8->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar10 = unaff_s8->prevX;" (assignment_expression "pMVar10 = unaff_s8->prevX" identifier = (field_expression "unaff_s8->prevX" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar8 == (MHD_Connection *)0x0) goto LAB_0001aa64;" if (parenthesized_expression "(pMVar8 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "pMVar8->prevX = pMVar10;" (assignment_expression "pMVar8->prevX = pMVar10" (field_expression "pMVar8->prevX" identifier -> field_identifier) = identifier) ;) (do_statement "do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar8 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }\n    if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }\n    pcVar24 = *(code **)(pcVar23 + 0x25538);\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar3 = (*pcVar24)(pMVar21);\n    if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);\n    pMVar10 = extraout_v1;\nLAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;\n  } while( true );" do (compound_statement "{\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar8 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }\n    if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }\n    pcVar24 = *(code **)(pcVar23 + 0x25538);\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar3 = (*pcVar24)(pMVar21);\n    if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);\n    pMVar10 = extraout_v1;\nLAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;\n  }" { (expression_statement "unaff_s8->nextX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->nextX = (MHD_Connection *)0x0" (field_expression "unaff_s8->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->prevX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevX = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001a804:\n    pMVar8 = unaff_s8->next;" statement_identifier : (expression_statement "pMVar8 = unaff_s8->next;" (assignment_expression "pMVar8 = unaff_s8->next" identifier = (field_expression "unaff_s8->next" identifier -> field_identifier)) ;)) (if_statement "if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }" if (parenthesized_expression "(unaff_s8->prev == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8->prev == (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar14->connections_head = pMVar8;\n      pMVar10 = (MHD_Connection *)0x0;\n    }" { (expression_statement "pMVar14->connections_head = pMVar8;" (assignment_expression "pMVar14->connections_head = pMVar8" (field_expression "pMVar14->connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar10 = (MHD_Connection *)0x0;" (assignment_expression "pMVar10 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }" else (compound_statement "{\n      unaff_s8->prev->next = pMVar8;\n      pMVar8 = unaff_s8->next;\n      pMVar10 = unaff_s8->prev;\n    }" { (expression_statement "unaff_s8->prev->next = pMVar8;" (assignment_expression "unaff_s8->prev->next = pMVar8" (field_expression "unaff_s8->prev->next" (field_expression "unaff_s8->prev" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "pMVar8 = unaff_s8->next;" (assignment_expression "pMVar8 = unaff_s8->next" identifier = (field_expression "unaff_s8->next" identifier -> field_identifier)) ;) (expression_statement "pMVar10 = unaff_s8->prev;" (assignment_expression "pMVar10 = unaff_s8->prev" identifier = (field_expression "unaff_s8->prev" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar8 == (MHD_Connection *)0x0) {\n      pMVar14->connections_tail = pMVar10;\n    }\n    else {\n      pMVar8->prev = pMVar10;\n    }" if (parenthesized_expression "(pMVar8 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar14->connections_tail = pMVar10;\n    }" { (expression_statement "pMVar14->connections_tail = pMVar10;" (assignment_expression "pMVar14->connections_tail = pMVar10" (field_expression "pMVar14->connections_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      pMVar8->prev = pMVar10;\n    }" else (compound_statement "{\n      pMVar8->prev = pMVar10;\n    }" { (expression_statement "pMVar8->prev = pMVar10;" (assignment_expression "pMVar8->prev = pMVar10" (field_expression "pMVar8->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x25538);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x25538)" * (cast_expression "(code **)(pcVar23 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25538)" ( (binary_expression "pcVar23 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8->next = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->next = (MHD_Connection *)0x0" (field_expression "unaff_s8->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->prev = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prev = (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (*pcVar24)(pMVar21);" (assignment_expression "iVar3 = (*pcVar24)(pMVar21)" identifier = (call_expression "(*pcVar24)(pMVar21)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pMVar21)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      MHD_pool_destroy(unaff_s8->pool);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);\n      (**(code **)(pcVar23 + 0x254f4))(unaff_s8);\n      puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }\n      (**(code **)(pcVar23 + 0x254b4))();\n    }" { (expression_statement "MHD_pool_destroy(unaff_s8->pool);" (call_expression "MHD_pool_destroy(unaff_s8->pool)" identifier (argument_list "(unaff_s8->pool)" ( (field_expression "unaff_s8->pool" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8->addr)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8->addr)" ( (field_expression "unaff_s8->addr" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar23 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar23 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254f4)" * (pointer_expression "*(code **)(pcVar23 + 0x254f4)" * (cast_expression "(code **)(pcVar23 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254f4)" ( (binary_expression "pcVar23 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(pcVar23 + 0x25400))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x25400))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x25400))" ( (pointer_expression "**(code **)(pcVar23 + 0x25400)" * (pointer_expression "*(code **)(pcVar23 + 0x25400)" * (cast_expression "(code **)(pcVar23 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25400)" ( (binary_expression "pcVar23 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar4 = 0x16;\n      }\n      else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" if (parenthesized_expression "(unaff_s5 == (MHD_Daemon *)0x0)" ( (binary_expression "unaff_s5 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar4 = 0x16;\n      }" { (expression_statement "*puVar4 = 0x16;" (assignment_expression "*puVar4 = 0x16" (pointer_expression "*puVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" else (compound_statement "{\n        *puVar4 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" { (expression_statement "*puVar4 = unaff_s5;" (assignment_expression "*puVar4 = unaff_s5" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (iStack_bc == *piVar20) {\n        return;\n      }" statement_identifier : (if_statement "if (iStack_bc == *piVar20) {\n        return;\n      }" if (parenthesized_expression "(iStack_bc == *piVar20)" ( (binary_expression "iStack_bc == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (expression_statement "(**(code **)(pcVar23 + 0x254b4))();" (call_expression "(**(code **)(pcVar23 + 0x254b4))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x254b4))" ( (pointer_expression "**(code **)(pcVar23 + 0x254b4)" * (pointer_expression "*(code **)(pcVar23 + 0x254b4)" * (cast_expression "(code **)(pcVar23 + 0x254b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x254b4)" ( (binary_expression "pcVar23 + 0x254b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar17 = 0xa67;" (assignment_expression "uVar17 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x2526c)" ( (binary_expression "pcVar23 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar23 + 0x25264),*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar23 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25264)" ( (binary_expression "pcVar23 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x51b8" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar17 = 0xa5b;" statement_identifier : (expression_statement "uVar17 = 0xa5b;" (assignment_expression "uVar17 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);" statement_identifier : (expression_statement "pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264);" (assignment_expression "pMVar18 = (MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264)" identifier = (cast_expression "(MHD_Daemon *)**(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25264)" ( (binary_expression "pcVar23 + 0x25264" identifier + number_literal) ))))))) ;)) (expression_statement "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x2526c)" ( (binary_expression "pcVar23 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(pMVar18,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x51e0)" ( identifier , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x51e0" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);" statement_identifier : (expression_statement "MHD_ip_count_lock(pMVar18);" (call_expression "MHD_ip_count_lock(pMVar18)" identifier (argument_list "(pMVar18)" ( identifier ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar17 = 0x912;" statement_identifier : (expression_statement "uVar17 = 0x912;" (assignment_expression "uVar17 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa40:\n    puVar4 = *(undefined4 **)(pcVar23 + 0x25264);" statement_identifier : (expression_statement "puVar4 = *(undefined4 **)(pcVar23 + 0x25264);" (assignment_expression "puVar4 = *(undefined4 **)(pcVar23 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar23 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x25264)" ( (binary_expression "pcVar23 + 0x25264" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950);" (call_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))\n              (*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar23 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar23 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar23 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x2526c)" ( (binary_expression "pcVar23 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(*puVar4,*(int *)(pcVar23 + 0x25258) + -0x40a0,uVar17,\n               *(int *)(pcVar23 + 0x25258) + -0x3950)" ( (pointer_expression "*puVar4" * identifier) , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar23 + 0x25258) + -0x3950" (pointer_expression "*(int *)(pcVar23 + 0x25258)" * (cast_expression "(int *)(pcVar23 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x25258)" ( (binary_expression "pcVar23 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "pMVar10 = extraout_v1;" (assignment_expression "pMVar10 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    pMVar14->normal_timeout_tail = pMVar10;" statement_identifier : (expression_statement "pMVar14->normal_timeout_tail = pMVar10;" (assignment_expression "pMVar14->normal_timeout_tail = pMVar10" (field_expression "pMVar14->normal_timeout_tail" identifier -> field_identifier) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int FUN_00019bc8(void)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}\n\n" (function_definition "int FUN_00019bc8(void)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00019bc8(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 auStack_d0 [2];" type_identifier (array_declarator "auStack_d0 [2]" identifier [ number_literal ]) ;) (declaration "int *piStack_c8;" primitive_type (pointer_declarator "*piStack_c8" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "int *piStack_b4;" primitive_type (pointer_declarator "*piStack_b4" * identifier) ;) (declaration "undefined1 *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "int iStack_ac;" primitive_type identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "byte bStack_79;" type_identifier identifier ;) (declaration "undefined1 auStack_74 [24];" type_identifier (array_declarator "auStack_74 [24]" identifier [ number_literal ]) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (expression_statement "pcVar14 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar14 = *(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 "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);" (call_expression "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (expression_statement "uVar8 = 0x128;" (assignment_expression "uVar8 = 0x128" identifier = number_literal) ;) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x25460);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x25460)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x25460)" * (pointer_expression "*(int **)(pcVar14 + 0x25460)" * (cast_expression "(int **)(pcVar14 + 0x25460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25460)" ( (binary_expression "pcVar14 + 0x25460" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);" (assignment_expression "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x25468)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x25468)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25468)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25468)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25468)" ( (binary_expression "pcVar14 + 0x25468" identifier + number_literal) ))))))) ;) (expression_statement "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;" (assignment_expression "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0" identifier = (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25454)" * (cast_expression "(int *)(pcVar14 + 0x25454)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);" (call_expression "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25454)" * (cast_expression "(int *)(pcVar14 + 0x25454)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar10 = *(int **)(pcVar15 + 0x256a4);" (assignment_expression "piVar10 = *(int **)(pcVar15 + 0x256a4)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x256a4)" * (cast_expression "(int **)(pcVar15 + 0x256a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256a4)" ( (binary_expression "pcVar15 + 0x256a4" identifier + number_literal) ))))) ;) (expression_statement "iStack_5c = *piVar10;" (assignment_expression "iStack_5c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar3 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x70)" identifier = (pointer_expression "*(int *)(iVar3 + 0x70)" * (cast_expression "(int *)(iVar3 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x70)" ( (binary_expression "iVar3 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" while (parenthesized_expression "(iVar5 = iVar4, iVar5 != 0)" ( (comma_expression "iVar5 = iVar4, iVar5 != 0" (assignment_expression "iVar5 = iVar4" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" { (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (expression_statement "iVar4 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x70)" identifier = (pointer_expression "*(int *)(iVar5 + 0x70)" * (cast_expression "(int *)(iVar5 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0xf4) == 0)" ( (binary_expression "*(int *)(iVar3 + 0xf4) == 0" (pointer_expression "*(int *)(iVar3 + 0xf4)" * (cast_expression "(int *)(iVar3 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xf4)" ( (binary_expression "iVar3 + 0xf4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }" { (labeled_statement "LAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" statement_identifier : (if_statement "if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" if (parenthesized_expression "(iStack_5c == *piVar10)" ( (binary_expression "iStack_5c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n      return *piVar10;\n    }" { (return_statement "return *piVar10;" return (pointer_expression "*piVar10" * identifier) ;) }))) (labeled_statement "LAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x25670))();" (call_expression "(**(code **)(pcVar15 + 0x25670))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x25670))" ( (pointer_expression "**(code **)(pcVar15 + 0x25670)" * (pointer_expression "*(code **)(pcVar15 + 0x25670)" * (cast_expression "(code **)(pcVar15 + 0x25670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25670)" ( (binary_expression "pcVar15 + 0x25670" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00019dcc:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" else (compound_statement "{\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" { (expression_statement "unaff_s2 = auStack_74;" (assignment_expression "unaff_s2 = auStack_74" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);" (assignment_expression "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2)" identifier = (call_expression "FUN_0001996c(iVar6,uVar8,unaff_s2)" identifier (argument_list "(iVar6,uVar8,unaff_s2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00019cac;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;)) (expression_statement "unaff_s3 = iVar3 + 0x94;" (assignment_expression "unaff_s3 = iVar3 + 0x94" identifier = (binary_expression "iVar3 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3)" identifier = (call_expression "(**(code **)(pcVar15 + 0x25660))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25660))" ( (pointer_expression "**(code **)(pcVar15 + 0x25660)" * (pointer_expression "*(code **)(pcVar15 + 0x25660)" * (cast_expression "(code **)(pcVar15 + 0x25660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25660)" ( (binary_expression "pcVar15 + 0x25660" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_00019dcc;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019dcc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = *(int *)(pcVar15 + 0x2543c);" (assignment_expression "unaff_s4 = *(int *)(pcVar15 + 0x2543c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x2543c)" * (cast_expression "(int *)(pcVar15 + 0x2543c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2543c)" ( (binary_expression "pcVar15 + 0x2543c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iVar3 + 0x78;" (assignment_expression "iVar3 = iVar3 + 0x78" identifier = (binary_expression "iVar3 + 0x78" identifier + number_literal)) ;) (expression_statement "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" identifier = (cast_expression "(int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25574))" ( (pointer_expression "**(code **)(pcVar15 + 0x25574)" * (pointer_expression "*(code **)(pcVar15 + 0x25574)" * (cast_expression "(code **)(pcVar15 + 0x25574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25574)" ( (binary_expression "pcVar15 + 0x25574" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" { (expression_statement "unaff_s2 = (undefined1 *)*piVar12;" (assignment_expression "unaff_s2 = (undefined1 *)*piVar12" identifier = (cast_expression "(undefined1 *)*piVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "iVar4 = *(int *)(unaff_s2 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(unaff_s2 + 0x14) + -1" identifier = (binary_expression "*(int *)(unaff_s2 + 0x14) + -1" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" if (parenthesized_expression "(*(int *)(unaff_s2 + 0x14) != 0)" ( (binary_expression "*(int *)(unaff_s2 + 0x14) != 0" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" { (expression_statement "*(int *)(unaff_s2 + 0x14) = iVar4;" (assignment_expression "*(int *)(unaff_s2 + 0x14) = iVar4" (pointer_expression "*(int *)(unaff_s2 + 0x14)" * (cast_expression "(int *)(unaff_s2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x14)" ( (binary_expression "unaff_s2 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) goto LAB_00019d6c;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d6c;" goto statement_identifier ;)) (while_statement "while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" while (parenthesized_expression "(iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3)" identifier = (call_expression "(**(code **)(pcVar15 + 0x256f4))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256f4))" ( (pointer_expression "**(code **)(pcVar15 + 0x256f4)" * (pointer_expression "*(code **)(pcVar15 + 0x256f4)" * (cast_expression "(code **)(pcVar15 + 0x256f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256f4)" ( (binary_expression "pcVar15 + 0x256f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s3)" ( identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )) (compound_statement "{\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" { (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (call_expression "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25620))" ( (pointer_expression "**(code **)(pcVar15 + 0x25620)" * (pointer_expression "*(code **)(pcVar15 + 0x25620)" * (cast_expression "(code **)(pcVar15 + 0x25620)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25620)" ( (binary_expression "pcVar15 + 0x25620" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" ( identifier , identifier , (binary_expression "unaff_s4 + -0x7054" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(pcVar15 + 0x256b0))(unaff_s2);" (call_expression "(**(code **)(pcVar15 + 0x256b0))(unaff_s2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256b0))" ( (pointer_expression "**(code **)(pcVar15 + 0x256b0)" * (pointer_expression "*(code **)(pcVar15 + 0x256b0)" * (cast_expression "(code **)(pcVar15 + 0x256b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x256b0)" ( (binary_expression "pcVar15 + 0x256b0" identifier + number_literal) ))))) )) (argument_list "(unaff_s2)" ( identifier ))) ;) })) (goto_statement "goto LAB_00019cac;" goto statement_identifier ;) })) (expression_statement "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);" (call_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25428)" ( (binary_expression "pcVar15 + 0x25428" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" ( (pointer_expression "**(undefined4 **)(pcVar15 + 0x25420)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25420)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25420)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25420)" ( (binary_expression "pcVar15 + 0x25420" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x3984" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00019dc0;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = 0x1dc;" (assignment_expression "uVar8 = 0x1dc" identifier = number_literal) ;) (expression_statement "iVar4 = **(int **)(pcVar15 + 0x25420);" (assignment_expression "iVar4 = **(int **)(pcVar15 + 0x25420)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x25420)" * (pointer_expression "*(int **)(pcVar15 + 0x25420)" * (cast_expression "(int **)(pcVar15 + 0x25420)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25420)" ( (binary_expression "pcVar15 + 0x25420" identifier + number_literal) )))))) ;) (expression_statement "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;" (assignment_expression "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0" identifier = (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x39b0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);" (assignment_expression "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" * (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x25428)" ( (binary_expression "pcVar15 + 0x25428" identifier + number_literal) ))))))) ;) (expression_statement "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;" (assignment_expression "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0" identifier = (binary_expression "*(int *)(pcVar15 + 0x25414) - 0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" * (cast_expression "(int *)(pcVar15 + 0x25414)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x25414)" ( (binary_expression "pcVar15 + 0x25414" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "(*pcVar14)(iVar4,uVar7,0x1dc);" (call_expression "(*pcVar14)(iVar4,uVar7,0x1dc)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar4,uVar7,0x1dc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x254e8);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x254e8)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x254e8)" * (cast_expression "(int **)(pcVar14 + 0x254e8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254e8)" ( (binary_expression "pcVar14 + 0x254e8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;" (assignment_expression "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff" identifier = (binary_expression "(uint)(pcVar15 + 0x2d3e8) & 0xff" (call_expression "(uint)(pcVar15 + 0x2d3e8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar15 + 0x2d3e8)" ( (binary_expression "pcVar15 + 0x2d3e8" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "piVar12 = (int *)(uint)bStack_79;" (assignment_expression "piVar12 = (int *)(uint)bStack_79" identifier = (cast_expression "(int *)(uint)bStack_79" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_79" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iStack_bc = *piVar11;" (assignment_expression "iStack_bc = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iStack_b8 = iVar3;" (assignment_expression "iStack_b8 = iVar3" identifier = identifier) ;) (expression_statement "piStack_b4 = piVar10;" (assignment_expression "piStack_b4 = piVar10" identifier = identifier) ;) (expression_statement "puStack_b0 = unaff_s2;" (assignment_expression "puStack_b0 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_ac = unaff_s3;" (assignment_expression "iStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "iStack_a8 = unaff_s4;" (assignment_expression "iStack_a8 = unaff_s4" identifier = identifier) ;) (if_statement "if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" if (parenthesized_expression "((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0))" ( (binary_expression "(uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x74)" identifier = (pointer_expression "*(int *)(iVar4 + 0x74)" * (cast_expression "(int *)(iVar4 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x74)" ( (binary_expression "iVar4 + 0x74" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" { (expression_statement "uVar13 = *(uint *)(iVar4 + 0x88);" (assignment_expression "uVar13 = *(uint *)(iVar4 + 0x88)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x88)" * (cast_expression "(uint *)(iVar4 + 0x88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x88)" ( (binary_expression "iVar4 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar13 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3" identifier = (binary_expression "(uVar7 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar7 % uVar13) * 0x174" (parenthesized_expression "(uVar7 % uVar13)" ( (binary_expression "uVar7 % uVar13" identifier % identifier) )) * number_literal) + identifier)) ;) (if_statement "if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" if (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" ( (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" * (cast_expression "(uint *)(iVar5 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0xe8)" * (cast_expression "(uint *)(iVar5 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" { (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" identifier = identifier) ;) (do_statement "do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));" do (compound_statement "{\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        }" { (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;" if (parenthesized_expression "(uVar7 + uVar13 == uVar1)" ( (binary_expression "uVar7 + uVar13 == uVar1" (binary_expression "uVar7 + uVar13" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar13 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3" identifier = (binary_expression "(uVar1 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar1 % uVar13) * 0x174" (parenthesized_expression "(uVar1 % uVar13)" ( (binary_expression "uVar1 % uVar13" identifier % identifier) )) * number_literal) + identifier)) ;) }) while (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" ( (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" * (cast_expression "(uint *)(iVar5 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar5 + 0xe8)" * (cast_expression "(uint *)(iVar5 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) ))))) )) ;) })) (expression_statement "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" identifier = (call_expression "FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" identifier (argument_list "(iVar5,uVar7,uVar8,iVar6,1,piVar12)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;)) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x900, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x900, *piVar10 == 9" (assignment_expression "uVar9 = 0x900" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (compound_statement "{\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" { (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)uVar7)" ( (binary_expression "0x3ff < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" ( (comma_expression "piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x25258)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x25258)" * (cast_expression "(int **)(pcVar14 + 0x25258)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) ))))) , (binary_expression "(*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 0x240)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 0x240" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = iVar4;" (assignment_expression "unaff_s5 = iVar4" identifier = identifier) ;) (if_statement "if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec))" ( (binary_expression "*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)" (pointer_expression "*(int *)(iVar4 + 0xe8)" * (cast_expression "(int *)(iVar4 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar4 + 0xec)" * (cast_expression "(int *)(iVar4 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xec)" ( (binary_expression "iVar4 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (labeled_statement "LAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" statement_identifier : (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x93d, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x93d, *piVar10 == 9" (assignment_expression "uVar9 = 0x93d" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" statement_identifier : (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;)) (expression_statement "*piVar10 = 0x17;" (assignment_expression "*piVar10 = 0x17" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" identifier = (pointer_expression "*(int *)(iVar4 + 0x70)" * (cast_expression "(int *)(iVar4 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x70)" ( (binary_expression "iVar4 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" while (parenthesized_expression "(iVar5 = iVar3, iVar5 != 0)" ( (comma_expression "iVar5 = iVar3, iVar5 != 0" (assignment_expression "iVar5 = iVar3" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" { (expression_statement "unaff_s5 = iVar5;" (assignment_expression "unaff_s5 = iVar5" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x70)" identifier = (pointer_expression "*(int *)(iVar5 + 0x70)" * (cast_expression "(int *)(iVar5 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" if (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" ( (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" * (cast_expression "(int *)(unaff_s5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18)" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25458))(0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25458))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25458))" ( (pointer_expression "**(code **)(pcVar14 + 0x25458)" * (pointer_expression "*(code **)(pcVar14 + 0x25458)" * (cast_expression "(code **)(pcVar14 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25458)" ( (binary_expression "pcVar14 + 0x25458" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);" (assignment_expression "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8)" identifier = (call_expression "FUN_0001996c(uVar8,iVar6,unaff_s8)" identifier (argument_list "(uVar8,iVar6,unaff_s8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "iVar3 = unaff_s5 + 0x94;" (assignment_expression "iVar3 = unaff_s5 + 0x94" identifier = (binary_expression "unaff_s5 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);" (assignment_expression "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);" (assignment_expression "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" identifier = (cast_expression "(undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25410))" ( (pointer_expression "**(code **)(pcVar14 + 0x25410)" * (pointer_expression "*(code **)(pcVar14 + 0x25410)" * (cast_expression "(code **)(pcVar14 + 0x25410)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25410)" ( (binary_expression "pcVar14 + 0x25410" identifier + number_literal) ))))) )) (argument_list "(unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" ( identifier , (binary_expression "unaff_s5 + 0x78" identifier + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x7054" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);" (assignment_expression "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" identifier = (cast_expression "(int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar14 + 0x25258) + -0x3904)" ( (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3904" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(unaff_s5,piVar10);" (call_expression "FUN_00020df0(unaff_s5,piVar10)" identifier (argument_list "(unaff_s5,piVar10)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25538))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" ( (pointer_expression "**(code **)(pcVar14 + 0x25538)" * (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar10 = (int *)*puVar2;" (assignment_expression "piVar10 = (int *)*puVar2" identifier = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != piVar10)" ( (binary_expression "unaff_s8 != piVar10" identifier != identifier) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (if_statement "if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4))" ( (binary_expression "(uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar10[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar10[5]" identifier [ number_literal ])) < (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" * (cast_expression "(uint *)(unaff_s5 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }" { (expression_statement "piVar10[5] = piVar10[5] + 1;" (assignment_expression "piVar10[5] = piVar10[5] + 1" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = (binary_expression "piVar10[5] + 1" (subscript_expression "piVar10[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" identifier = (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" identifier = (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" statement_identifier : (expression_statement "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" (call_expression "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400)" identifier (argument_list "(iVar4,piVar10 + -0xe4e,uVar7,0x400)" ( identifier , (binary_expression "piVar10 + -0xe4e" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar3 != 0) && (*piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (*piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0))" ( (binary_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x40)" * (cast_expression "(code **)(iVar4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" ( (comma_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" identifier = (call_expression "(**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x40))" ( (pointer_expression "**(code **)(iVar4 + 0x40)" * (pointer_expression "*(code **)(iVar4 + 0x40)" * (cast_expression "(code **)(iVar4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x44)" * (cast_expression "(undefined4 *)(iVar4 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "unaff_s5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = 0x950;" (assignment_expression "uVar9 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25340))(1,0x100)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25340))" ( (pointer_expression "**(code **)(pcVar14 + 0x25340)" * (pointer_expression "*(code **)(pcVar14 + 0x25340)" * (cast_expression "(code **)(pcVar14 + 0x25340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25340)" ( (binary_expression "pcVar14 + 0x25340" identifier + number_literal) ))))) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x962, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x962, *piVar10 == 9" (assignment_expression "uVar9 = 0x962" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));" (assignment_expression "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" identifier = (call_expression "FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x7c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x7c)" * (cast_expression "(undefined4 *)(iVar4 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x7c)" ( (binary_expression "iVar4 + 0x7c" identifier + number_literal) )))) )))) ;) (expression_statement "unaff_s8[10] = iVar3;" (assignment_expression "unaff_s8[10] = iVar3" (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(*piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(*piVar12)" ( (pointer_expression "*piVar12" * identifier) )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x971, *piVar12 == 9)" ( (comma_expression "uVar9 = 0x971, *piVar12 == 9" (assignment_expression "uVar9 = 0x971" identifier = number_literal) , (binary_expression "*piVar12 == 9" (pointer_expression "*piVar12" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar12 = 0xc;" (assignment_expression "*piVar12 = 0xc" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25458);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25458)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25458)" * (cast_expression "(code **)(pcVar14 + 0x25458)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25458)" ( (binary_expression "pcVar14 + 0x25458" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0)" (subscript_expression "unaff_s8[0x26]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0xf0)" * (cast_expression "(int *)(iVar4 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf0)" ( (binary_expression "iVar4 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (*pcVar15)(iVar6);" (assignment_expression "iVar3 = (*pcVar15)(iVar6)" identifier = (call_expression "(*pcVar15)(iVar6)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "unaff_s8[0x15] = iVar3;" (assignment_expression "unaff_s8[0x15] = iVar3" (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;" if (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 = 0x985, *piVar10 == 9)" ( (comma_expression "uVar9 = 0x985, *piVar10 == 9" (assignment_expression "uVar9 = 0x985" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);" (call_expression "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254ec))" ( (pointer_expression "**(code **)(pcVar14 + 0x254ec)" * (pointer_expression "*(code **)(pcVar14 + 0x254ec)" * (cast_expression "(code **)(pcVar14 + 0x254ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254ec)" ( (binary_expression "pcVar14 + 0x254ec" identifier + number_literal) ))))) )) (argument_list "(iVar3,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8[0x24] = iVar6;" (assignment_expression "unaff_s8[0x24] = iVar6" (subscript_expression "unaff_s8[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "unaff_s8[0x29] = uVar7;" (assignment_expression "unaff_s8[0x29] = uVar7" (subscript_expression "unaff_s8[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = bStack_79;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = bStack_79" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" * (cast_expression "(byte *)(unaff_s8 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8 + 0x2a)" ( (binary_expression "unaff_s8 + 0x2a" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s8[6] = iVar4;" (assignment_expression "unaff_s8[6] = iVar4" (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = FUN_0002186c();" (assignment_expression "iVar3 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x25] = iVar3;" (assignment_expression "unaff_s8[0x25] = iVar3" (subscript_expression "unaff_s8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" if (parenthesized_expression "((uVar1 & 2) == 0)" ( (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);" statement_identifier : (expression_statement "piVar12 = (int *)(iVar4 + 0xac);" (assignment_expression "piVar12 = (int *)(iVar4 + 0xac)" identifier = (cast_expression "(int *)(iVar4 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xac)" ( (binary_expression "iVar4 + 0xac" identifier + number_literal) )))) ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0x9e4;" (assignment_expression "uVar9 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec))" ( (binary_expression "*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar4 + 0xec)" * (cast_expression "(uint *)(iVar4 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xec)" ( (binary_expression "iVar4 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" { (expression_statement "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;" (assignment_expression "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" * (cast_expression "(uint *)(iVar4 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xe8)" ( (binary_expression "iVar4 + 0xe8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" if (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[4] = iVar3;" (assignment_expression "unaff_s8[4] = iVar3" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar4 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x34) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x34)" * (cast_expression "(int **)(iVar4 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" else (compound_statement "{\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar3 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0x14)" * (cast_expression "(int **)(iVar3 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int **)(iVar4 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x30) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x30)" * (cast_expression "(int **)(iVar4 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[2] = iVar3;" (assignment_expression "unaff_s8[2] = iVar3" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar4 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" else (compound_statement "{\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar3 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0xc)" * (cast_expression "(int **)(iVar3 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(iVar4 + 8) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 8) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 8)" * (cast_expression "(int **)(iVar4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" identifier = (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0xa01;" (assignment_expression "uVar9 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" if (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" { (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" ( (pointer_expression "**(code **)(iVar4 + 0x50)" * (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" * (cast_expression "(undefined4 *)(iVar4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x90);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x90)" identifier = (pointer_expression "*(int *)(iVar4 + 0x90)" * (cast_expression "(int *)(iVar4 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c)" (subscript_expression "unaff_s8[0x16]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar4 + 0x8c)" * (cast_expression "(int *)(iVar4 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8c)" ( (binary_expression "iVar4 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x17] = iVar3;" (assignment_expression "unaff_s8[0x17] = iVar3" (subscript_expression "unaff_s8[0x17]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (if_statement "if (uVar13 == 0) goto LAB_0001a1e8;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(*(int *)(iVar4 + 0xdc) == -1)" ( (binary_expression "*(int *)(iVar4 + 0xdc) == -1" (pointer_expression "*(int *)(iVar4 + 0xdc)" * (cast_expression "(int *)(iVar4 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xdc)" ( (binary_expression "iVar4 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2541c))" ( (pointer_expression "**(code **)(pcVar14 + 0x2541c)" * (pointer_expression "*(code **)(pcVar14 + 0x2541c)" * (cast_expression "(code **)(pcVar14 + 0x2541c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2541c)" ( (binary_expression "pcVar14 + 0x2541c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar4 + 0xdc)" * (cast_expression "(int *)(iVar4 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xdc)" ( (binary_expression "iVar4 + 0xdc" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x28d8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))" ( (binary_expression "(iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" ( (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar10 != 0xb" (pointer_expression "*piVar10" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x37f4" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);" (assignment_expression "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" identifier = (call_expression "FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" identifier (argument_list "(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" ( (binary_expression "unaff_s8 + 0x16" identifier + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3824" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(iVar4 + 0x84)" * (cast_expression "(undefined4 *)(iVar4 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x84)" ( (binary_expression "iVar4 + 0x84" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x445c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3814" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((uVar1 & 4) != 0) goto LAB_0001a8dc;" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" if (parenthesized_expression "((uVar1 & 0x1000) == 0)" ( (binary_expression "(uVar1 & 0x1000) == 0" (parenthesized_expression "(uVar1 & 0x1000)" ( (binary_expression "uVar1 & 0x1000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }" { (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25474)" * (cast_expression "(code **)(pcVar14 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25474)" ( (binary_expression "pcVar14 + 0x25474" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" else (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25474)" * (cast_expression "(code **)(pcVar14 + 0x25474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25474)" ( (binary_expression "pcVar14 + 0x25474" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x20);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x20)" identifier = (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x24);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x24)" identifier = (pointer_expression "*(int *)(iVar4 + 0x24)" * (cast_expression "(int *)(iVar4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*unaff_s8 = iVar3;" (assignment_expression "*unaff_s8 = iVar3" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (if_statement "if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" { (expression_statement "*(int **)(iVar4 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x24) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x24)" * (cast_expression "(int **)(iVar4 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" * (cast_expression "(int **)(iVar4 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "*(int **)(iVar3 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" * (cast_expression "(int **)(iVar4 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }))) (expression_statement "auStack_d0[0] = 0x80000007;" (assignment_expression "auStack_d0[0] = 0x80000007" (subscript_expression "auStack_d0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piStack_c8 = unaff_s8;" (assignment_expression "piStack_c8 = unaff_s8" identifier = identifier) ;) (expression_statement "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);" (assignment_expression "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" identifier = (call_expression "(*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xcc)" * (cast_expression "(undefined4 *)(iVar4 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xcc)" ( (binary_expression "iVar4 + 0xcc" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" ( (pointer_expression "**(code **)(pcVar14 + 0x25450)" * (pointer_expression "*(code **)(pcVar14 + 0x25450)" * (cast_expression "(code **)(pcVar14 + 0x25450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25450)" ( (binary_expression "pcVar14 + 0x25450" identifier + number_literal) ))))) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x4da8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" else (compound_statement "{\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" { (expression_statement "piVar12 = (int *)0x1;" (assignment_expression "piVar12 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);" (call_expression "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25414))" ( (pointer_expression "**(code **)(pcVar14 + 0x25414)" * (pointer_expression "*(code **)(pcVar14 + 0x25414)" * (cast_expression "(code **)(pcVar14 + 0x25414)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25414)" ( (binary_expression "pcVar14 + 0x25414" identifier + number_literal) ))))) )) (argument_list "(unaff_s8 + 0x39,0x49)" ( (binary_expression "unaff_s8 + 0x39" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));" (call_expression "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x253ac)" * (pointer_expression "*(code **)(pcVar14 + 0x253ac)" * (cast_expression "(code **)(pcVar14 + 0x253ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253ac)" ( (binary_expression "pcVar14 + 0x253ac" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(iVar4 + 0x10c)" * (cast_expression "(undefined4 *)(iVar4 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10c)" ( (binary_expression "iVar4 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25454))" ( (pointer_expression "**(code **)(pcVar14 + 0x25454)" * (pointer_expression "*(code **)(pcVar14 + 0x25454)" * (cast_expression "(code **)(pcVar14 + 0x25454)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25454)" ( (binary_expression "pcVar14 + 0x25454" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],unaff_s8)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 1)" ( (binary_expression "*(int *)(iVar4 + 0x110) == 1" (pointer_expression "*(int *)(iVar4 + 0x110)" * (cast_expression "(int *)(iVar4 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x110)" ( (binary_expression "iVar4 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar14 + 0x253d4)" * (pointer_expression "*(code **)(pcVar14 + 0x253d4)" * (cast_expression "(code **)(pcVar14 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253d4)" ( (binary_expression "pcVar14 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x114)" * (cast_expression "(undefined4 *)(iVar4 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x114)" ( (binary_expression "iVar4 + 0x114" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" statement_identifier : (expression_statement "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" (call_expression "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x253e8))" ( (pointer_expression "**(code **)(pcVar14 + 0x253e8)" * (pointer_expression "*(code **)(pcVar14 + 0x253e8)" * (cast_expression "(code **)(pcVar14 + 0x253e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253e8)" ( (binary_expression "pcVar14 + 0x253e8" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],uVar7,uVar7)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier , identifier ))) ;)) (if_statement "if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x138) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x138) != 0" (pointer_expression "*(int *)(iVar4 + 0x138)" * (cast_expression "(int *)(iVar4 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x138)" ( (binary_expression "iVar4 + 0x138" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);" (call_expression "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25470))" ( (pointer_expression "**(code **)(pcVar14 + 0x25470)" * (pointer_expression "*(code **)(pcVar14 + 0x25470)" * (cast_expression "(code **)(pcVar14 + 0x25470)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25470)" ( (binary_expression "pcVar14 + 0x25470" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],1)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 4)" ( (binary_expression "*(int *)(iVar4 + 0x110) == 4" (pointer_expression "*(int *)(iVar4 + 0x110)" * (cast_expression "(int *)(iVar4 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x110)" ( (binary_expression "iVar4 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" ( (pointer_expression "**(code **)(pcVar14 + 0x253d4)" * (pointer_expression "*(code **)(pcVar14 + 0x253d4)" * (cast_expression "(code **)(pcVar14 + 0x253d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x253d4)" ( (binary_expression "pcVar14 + 0x253d4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" * (cast_expression "(undefined4 *)(iVar4 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11c)" ( (binary_expression "iVar4 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);" (call_expression "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25434))" ( (pointer_expression "**(code **)(pcVar14 + 0x25434)" * (pointer_expression "*(code **)(pcVar14 + 0x25434)" * (cast_expression "(code **)(pcVar14 + 0x25434)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25434)" ( (binary_expression "pcVar14 + 0x25434" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" * (cast_expression "(undefined4 *)(iVar4 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x11c)" ( (binary_expression "iVar4 + 0x11c" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x703c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" * (cast_expression "(int *)(pcVar14 + 0x25280)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25280)" ( (binary_expression "pcVar14 + 0x25280" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" identifier (argument_list "(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" ( (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x387c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" if (parenthesized_expression "((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9))" ( (binary_expression "(iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" ( (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" { (expression_statement "uVar9 = 0x9c3;" (assignment_expression "uVar9 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x383c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25538))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" ( (pointer_expression "**(code **)(pcVar14 + 0x25538)" * (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (expression_statement "uVar9 = 0x9ea;" (assignment_expression "uVar9 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" identifier (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" statement_identifier : (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" if (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" { (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" ( (pointer_expression "**(code **)(iVar4 + 0x50)" * (pointer_expression "*(code **)(iVar4 + 0x50)" * (cast_expression "(code **)(iVar4 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" * (cast_expression "(undefined4 *)(iVar4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) }))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }" if (parenthesized_expression "(unaff_s8[0x39] != 0)" ( (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar14 + 0x25534))();\n  }" { (expression_statement "(**(code **)(pcVar14 + 0x25534))();" (call_expression "(**(code **)(pcVar14 + 0x25534))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25534))" ( (pointer_expression "**(code **)(pcVar14 + 0x25534)" * (pointer_expression "*(code **)(pcVar14 + 0x25534)" * (cast_expression "(code **)(pcVar14 + 0x25534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25534)" ( (binary_expression "pcVar14 + 0x25534" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" identifier = (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" ( (pointer_expression "**(code **)(pcVar14 + 0x25354)" * (pointer_expression "*(code **)(pcVar14 + 0x25354)" * (cast_expression "(code **)(pcVar14 + 0x25354)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25354)" ( (binary_expression "pcVar14 + 0x25354" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = 0xa56;" (assignment_expression "uVar9 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" if (parenthesized_expression "(*piVar10 == 9)" ( (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa40;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" identifier (argument_list "(iVar4,uVar8,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" identifier = (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254a4)" * (pointer_expression "*(code **)(pcVar14 + 0x254a4)" * (cast_expression "(code **)(pcVar14 + 0x254a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254a4)" ( (binary_expression "pcVar14 + 0x254a4" identifier + number_literal) ))))) )) (argument_list "(piVar12)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;" if (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" * (cast_expression "(uint *)(iVar4 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xf8)" ( (binary_expression "iVar4 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" if (parenthesized_expression "(unaff_s8[5] == 0)" ( (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }" { (expression_statement "*(int *)(iVar4 + 0x30) = iVar3;" (assignment_expression "*(int *)(iVar4 + 0x30) = iVar3" (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" else (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" { (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar3;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar3" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" * (cast_expression "(int *)(unaff_s8[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[5] + 0x10)" ( (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" identifier = (subscript_expression "unaff_s8[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 == 0) goto LAB_0001aa64;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar3 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );" do (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  }" { (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001a804:\n    iVar3 = unaff_s8[2];" statement_identifier : (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;)) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" if (parenthesized_expression "(unaff_s8[3] == 0)" ( (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }" { (expression_statement "*(int *)(iVar4 + 8) = iVar3;" (assignment_expression "*(int *)(iVar4 + 8) = iVar3" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" else (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" { (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar3;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar3" (pointer_expression "*(int *)(unaff_s8[3] + 8)" * (cast_expression "(int *)(unaff_s8[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[3] + 8)" ( (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" identifier = (subscript_expression "unaff_s8[3]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar4 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" else (compound_statement "{\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar3 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x25538)" * (cast_expression "(code **)(pcVar14 + 0x25538)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25538)" ( (binary_expression "pcVar14 + 0x25538" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" identifier = (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar12)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" { (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254f4)" * (pointer_expression "*(code **)(pcVar14 + 0x254f4)" * (cast_expression "(code **)(pcVar14 + 0x254f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254f4)" ( (binary_expression "pcVar14 + 0x254f4" identifier + number_literal) ))))) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" identifier = (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" ( (pointer_expression "**(code **)(pcVar14 + 0x25400)" * (pointer_expression "*(code **)(pcVar14 + 0x25400)" * (cast_expression "(code **)(pcVar14 + 0x25400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25400)" ( (binary_expression "pcVar14 + 0x25400" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n        *piVar10 = 0x16;\n      }" { (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" else (compound_statement "{\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" { (expression_statement "*piVar10 = unaff_s5;" (assignment_expression "*piVar10 = unaff_s5" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" statement_identifier : (if_statement "if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" if (parenthesized_expression "(iStack_bc == *piVar11)" ( (binary_expression "iStack_bc == *piVar11" identifier == (pointer_expression "*piVar11" * identifier)) )) (compound_statement "{\n        return unaff_s5;\n      }" { (return_statement "return unaff_s5;" return identifier ;) }))) (expression_statement "(**(code **)(pcVar14 + 0x254b4))();" (call_expression "(**(code **)(pcVar14 + 0x254b4))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x254b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x254b4)" * (pointer_expression "*(code **)(pcVar14 + 0x254b4)" * (cast_expression "(code **)(pcVar14 + 0x254b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x254b4)" ( (binary_expression "pcVar14 + 0x254b4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar9 = 0xa67;" (assignment_expression "uVar9 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar9 = 0xa5b;" statement_identifier : (expression_statement "uVar9 = 0xa5b;" (assignment_expression "uVar9 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51e0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar9 = 0x912;" statement_identifier : (expression_statement "uVar9 = 0x912;" (assignment_expression "uVar9 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" statement_identifier : (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" * (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x25264)" ( (binary_expression "pcVar14 + 0x25264" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" * (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2526c)" ( (binary_expression "pcVar14 + 0x2526c" identifier + number_literal) ))))))) )) (argument_list "(*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" ( (pointer_expression "*puVar2" * identifier) , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3950" (pointer_expression "*(int *)(pcVar14 + 0x25258)" * (cast_expression "(int *)(pcVar14 + 0x25258)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x25258)" ( (binary_expression "pcVar14 + 0x25258" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;" statement_identifier : (expression_statement "*(int *)(iVar4 + 0x34) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x34) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return (pointer_expression * IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , 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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 *)) ) (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 , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + 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 ( IDENT ))) ;) })) (goto_statement goto 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) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement 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 )))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (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 *)) ) (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 = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != 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 ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 ( IDENT , (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 ( 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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 = (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) , (binary_expression IDENT == 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 )))) ;) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 ( LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 *)) ) (pointer_expression * 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 IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression 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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression 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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ 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 ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (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 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 ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (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 = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 = (pointer_expression * 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 IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (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 = (pointer_expression * 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 IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( 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 ( (binary_expression 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 ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (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) )))) == 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 ( (subscript_expression IDENT [ LIT ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (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 (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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 ]) ))) ;) (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 ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (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 ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ 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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (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 = (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ 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 ( (subscript_expression IDENT [ 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 ( IDENT ))) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (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 IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "int FUN_00019bc8(void)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" (primitive_type "int") (function_declarator "FUN_00019bc8(void)" (identifier "FUN_00019bc8") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  int extraout_v1;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int *piVar12;\n  int unaff_s5;\n  uint uVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int *unaff_s8;\n  undefined4 auStack_d0 [2];\n  int *piStack_c8;\n  int iStack_bc;\n  int iStack_b8;\n  int *piStack_b4;\n  undefined1 *puStack_b0;\n  int iStack_ac;\n  int iStack_a8;\n  byte bStack_79;\n  undefined1 auStack_74 [24];\n  int iStack_5c;\n  \n  pcVar14 = *(code **)PTR_DAT_0003f070;\n  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);\n  uVar8 = 0x128;\n  iVar3 = **(int **)(pcVar14 + 0x25460);\n  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);\n  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;\n  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);\n  piVar10 = *(int **)(pcVar15 + 0x256a4);\n  iStack_5c = *piVar10;\n  iVar4 = *(int *)(iVar3 + 0x70);\n  while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }\n  uVar8 = 0x1dc;\n  iVar4 = **(int **)(pcVar15 + 0x25420);\n  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;\n  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);\n  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;\n  (*pcVar14)(iVar4,uVar7,0x1dc);\n  piVar11 = *(int **)(pcVar14 + 0x254e8);\n  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;\n  piVar12 = (int *)(uint)bStack_79;\n  iStack_bc = *piVar11;\n  iStack_b8 = iVar3;\n  piStack_b4 = piVar10;\n  puStack_b0 = unaff_s2;\n  iStack_ac = unaff_s3;\n  iStack_a8 = unaff_s4;\n  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }\n  if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = iVar4;\n  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = *(int *)(iVar4 + 0x70);\n  while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));\n  unaff_s8[10] = iVar3;\n  if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x25458);\n  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);\n  iVar3 = (*pcVar15)(iVar6);\n  unaff_s8[0x15] = iVar3;\n  if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }\n  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);\n  unaff_s8[0x24] = iVar6;\n  unaff_s8[0x29] = uVar7;\n  *(byte *)(unaff_s8 + 0x2a) = bStack_79;\n  unaff_s8[6] = iVar4;\n  iVar3 = FUN_0002186c();\n  uVar1 = *(uint *)(iVar4 + 0xf8);\n  unaff_s8[0x25] = iVar3;\n  if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);\n  uVar9 = 0x9ea;\n  if (iVar3 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }\n  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n  if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }\n  FUN_00019c48(iVar4,uVar8,iVar6);\n  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n  if (iVar3 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar3 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar3 == 0) goto LAB_0001aa64;\n  *(int *)(iVar3 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined1 *unaff_s2;" (type_identifier "undefined1") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "int unaff_s3;" (primitive_type "int") (identifier "unaff_s3") (; ";")) (declaration "int unaff_s4;" (primitive_type "int") (identifier "unaff_s4") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int unaff_s5;" (primitive_type "int") (identifier "unaff_s5") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "undefined4 auStack_d0 [2];" (type_identifier "undefined4") (array_declarator "auStack_d0 [2]" (identifier "auStack_d0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int *piStack_c8;" (primitive_type "int") (pointer_declarator "*piStack_c8" (* "*") (identifier "piStack_c8")) (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "int iStack_b8;" (primitive_type "int") (identifier "iStack_b8") (; ";")) (declaration "int *piStack_b4;" (primitive_type "int") (pointer_declarator "*piStack_b4" (* "*") (identifier "piStack_b4")) (; ";")) (declaration "undefined1 *puStack_b0;" (type_identifier "undefined1") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "int iStack_ac;" (primitive_type "int") (identifier "iStack_ac") (; ";")) (declaration "int iStack_a8;" (primitive_type "int") (identifier "iStack_a8") (; ";")) (declaration "byte bStack_79;" (type_identifier "byte") (identifier "bStack_79") (; ";")) (declaration "undefined1 auStack_74 [24];" (type_identifier "undefined1") (array_declarator "auStack_74 [24]" (identifier "auStack_74") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (expression_statement "pcVar14 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar14 = *(code **)PTR_DAT_0003f070" (identifier "pcVar14") (= "=") (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 "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0);" (call_expression "(*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,\n             PTR_DAT_0003f05c + -0x51e0)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0x118") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51e0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";")) (expression_statement "uVar8 = 0x128;" (assignment_expression "uVar8 = 0x128" (identifier "uVar8") (= "=") (number_literal "0x128")) (; ";")) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x25460);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x25460)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(pcVar14 + 0x25460)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x25460)" (* "*") (cast_expression "(int **)(pcVar14 + 0x25460)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25460)" (( "(") (binary_expression "pcVar14 + 0x25460" (identifier "pcVar14") (+ "+") (number_literal "0x25460")) () ")")))))) (; ";")) (expression_statement "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);" (assignment_expression "pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468)" (identifier "pcVar15") (= "=") (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x25468)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar14 + 0x25468)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25468)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25468)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25468)" (( "(") (binary_expression "pcVar14 + 0x25468" (identifier "pcVar14") (+ "+") (number_literal "0x25468")) () ")"))))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;" (assignment_expression "iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25454)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25454)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25454)" (( "(") (binary_expression "pcVar14 + 0x25454" (identifier "pcVar14") (+ "+") (number_literal "0x25454")) () ")")))) (+ "+") (number_literal "-0x40a0"))) (; ";")) (expression_statement "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);" (call_expression "(*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar6") (, ",") (number_literal "0x128") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25454) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25454)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25454)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25454)" (( "(") (binary_expression "pcVar14 + 0x25454" (identifier "pcVar14") (+ "+") (number_literal "0x25454")) () ")")))) (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";")) (expression_statement "piVar10 = *(int **)(pcVar15 + 0x256a4);" (assignment_expression "piVar10 = *(int **)(pcVar15 + 0x256a4)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(pcVar15 + 0x256a4)" (* "*") (cast_expression "(int **)(pcVar15 + 0x256a4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x256a4)" (( "(") (binary_expression "pcVar15 + 0x256a4" (identifier "pcVar15") (+ "+") (number_literal "0x256a4")) () ")"))))) (; ";")) (expression_statement "iStack_5c = *piVar10;" (assignment_expression "iStack_5c = *piVar10" (identifier "iStack_5c") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar3 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x70)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x70)" (* "*") (cast_expression "(int *)(iVar3 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x70)" (( "(") (binary_expression "iVar3 + 0x70" (identifier "iVar3") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (while_statement "while (iVar5 = iVar4, iVar5 != 0) {\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" (while "while") (parenthesized_expression "(iVar5 = iVar4, iVar5 != 0)" (( "(") (comma_expression "iVar5 = iVar4, iVar5 != 0" (assignment_expression "iVar5 = iVar4" (identifier "iVar5") (= "=") (identifier "iVar4")) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    iVar3 = iVar5;\n    iVar4 = *(int *)(iVar5 + 0x70);\n  }" ({ "{") (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" (identifier "iVar3") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar4 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x70)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar5 + 0x70)" (* "*") (cast_expression "(int *)(iVar5 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x70)" (( "(") (binary_expression "iVar5 + 0x70" (identifier "iVar5") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0xf4) == 0) {\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }\n  else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0xf4) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0xf4) == 0" (pointer_expression "*(int *)(iVar3 + 0xf4)" (* "*") (cast_expression "(int *)(iVar3 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xf4)" (( "(") (binary_expression "iVar3 + 0xf4" (identifier "iVar3") (+ "+") (number_literal "0xf4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }\nLAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();\nLAB_00019dcc:\n    FUN_00019bc8();\n  }" ({ "{") (labeled_statement "LAB_00019cac:\n    if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" (statement_identifier "LAB_00019cac") (: ":") (if_statement "if (iStack_5c == *piVar10) {\n      return *piVar10;\n    }" (if "if") (parenthesized_expression "(iStack_5c == *piVar10)" (( "(") (binary_expression "iStack_5c == *piVar10" (identifier "iStack_5c") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (compound_statement "{\n      return *piVar10;\n    }" ({ "{") (return_statement "return *piVar10;" (return "return") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (} "}")))) (labeled_statement "LAB_00019dc0:\n    (**(code **)(pcVar15 + 0x25670))();" (statement_identifier "LAB_00019dc0") (: ":") (expression_statement "(**(code **)(pcVar15 + 0x25670))();" (call_expression "(**(code **)(pcVar15 + 0x25670))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x25670))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x25670)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x25670)" (* "*") (cast_expression "(code **)(pcVar15 + 0x25670)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25670)" (( "(") (binary_expression "pcVar15 + 0x25670" (identifier "pcVar15") (+ "+") (number_literal "0x25670")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_00019dcc:\n    FUN_00019bc8();" (statement_identifier "LAB_00019dcc") (: ":") (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" (identifier "FUN_00019bc8") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s2 = auStack_74;\n    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);\n    if (iVar4 == 0) goto LAB_00019cac;\n    unaff_s3 = iVar3 + 0x94;\n    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);\n    if (iVar4 != 0) goto LAB_00019dcc;\n    unaff_s4 = *(int *)(pcVar15 + 0x2543c);\n    iVar3 = iVar3 + 0x78;\n    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n    if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }\n  }" ({ "{") (expression_statement "unaff_s2 = auStack_74;" (assignment_expression "unaff_s2 = auStack_74" (identifier "unaff_s2") (= "=") (identifier "auStack_74")) (; ";")) (expression_statement "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);" (assignment_expression "iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2)" (identifier "iVar4") (= "=") (call_expression "FUN_0001996c(iVar6,uVar8,unaff_s2)" (identifier "FUN_0001996c") (argument_list "(iVar6,uVar8,unaff_s2)" (( "(") (identifier "iVar6") (, ",") (identifier "uVar8") (, ",") (identifier "unaff_s2") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00019cac;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019cac;" (goto "goto") (statement_identifier "LAB_00019cac") (; ";"))) (expression_statement "unaff_s3 = iVar3 + 0x94;" (assignment_expression "unaff_s3 = iVar3 + 0x94" (identifier "unaff_s3") (= "=") (binary_expression "iVar3 + 0x94" (identifier "iVar3") (+ "+") (number_literal "0x94"))) (; ";")) (expression_statement "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(pcVar15 + 0x25660))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25660))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x25660)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x25660)" (* "*") (cast_expression "(code **)(pcVar15 + 0x25660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25660)" (( "(") (binary_expression "pcVar15 + 0x25660" (identifier "pcVar15") (+ "+") (number_literal "0x25660")) () ")"))))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_00019dcc;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019dcc;" (goto "goto") (statement_identifier "LAB_00019dcc") (; ";"))) (expression_statement "unaff_s4 = *(int *)(pcVar15 + 0x2543c);" (assignment_expression "unaff_s4 = *(int *)(pcVar15 + 0x2543c)" (identifier "unaff_s4") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x2543c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x2543c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x2543c)" (( "(") (binary_expression "pcVar15 + 0x2543c" (identifier "pcVar15") (+ "+") (number_literal "0x2543c")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar3 + 0x78;" (assignment_expression "iVar3 = iVar3 + 0x78" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x78" (identifier "iVar3") (+ "+") (number_literal "0x78"))) (; ";")) (expression_statement "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (identifier "piVar12") (= "=") (cast_expression "(int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25574))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x25574)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x25574)" (* "*") (cast_expression "(code **)(pcVar15 + 0x25574)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25574)" (( "(") (binary_expression "pcVar15 + 0x25574" (identifier "pcVar15") (+ "+") (number_literal "0x25574")) () ")"))))) () ")")) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" (( "(") (identifier "unaff_s2") (, ",") (identifier "iVar3") (, ",") (binary_expression "unaff_s4 + -0x7054" (identifier "unaff_s4") (+ "+") (number_literal "-0x7054")) () ")"))))) (; ";")) (if_statement "if (piVar12 != (int *)0x0) {\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      unaff_s2 = (undefined1 *)*piVar12;\n      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;\n      if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }\n      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);\n      goto LAB_00019dc0;\n    }" ({ "{") (expression_statement "unaff_s2 = (undefined1 *)*piVar12;" (assignment_expression "unaff_s2 = (undefined1 *)*piVar12" (identifier "unaff_s2") (= "=") (cast_expression "(undefined1 *)*piVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (expression_statement "iVar4 = *(int *)(unaff_s2 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(unaff_s2 + 0x14) + -1" (identifier "iVar4") (= "=") (binary_expression "*(int *)(unaff_s2 + 0x14) + -1" (pointer_expression "*(int *)(unaff_s2 + 0x14)" (* "*") (cast_expression "(int *)(unaff_s2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 0x14)" (( "(") (binary_expression "unaff_s2 + 0x14" (identifier "unaff_s2") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(int *)(unaff_s2 + 0x14) != 0) {\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" (if "if") (parenthesized_expression "(*(int *)(unaff_s2 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(unaff_s2 + 0x14) != 0" (pointer_expression "*(int *)(unaff_s2 + 0x14)" (* "*") (cast_expression "(int *)(unaff_s2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 0x14)" (( "(") (binary_expression "unaff_s2 + 0x14" (identifier "unaff_s2") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(unaff_s2 + 0x14) = iVar4;\n        if (iVar4 == 0) goto LAB_00019d6c;\n        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }\n        goto LAB_00019cac;\n      }" ({ "{") (expression_statement "*(int *)(unaff_s2 + 0x14) = iVar4;" (assignment_expression "*(int *)(unaff_s2 + 0x14) = iVar4" (pointer_expression "*(int *)(unaff_s2 + 0x14)" (* "*") (cast_expression "(int *)(unaff_s2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 0x14)" (( "(") (binary_expression "unaff_s2 + 0x14" (identifier "unaff_s2") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00019d6c;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019d6c;" (goto "goto") (statement_identifier "LAB_00019d6c") (; ";"))) (while_statement "while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" (while "while") (parenthesized_expression "(iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0)" (( "(") (comma_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(pcVar15 + 0x256f4))(unaff_s3)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256f4))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x256f4)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x256f4)" (* "*") (cast_expression "(code **)(pcVar15 + 0x256f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x256f4)" (( "(") (binary_expression "pcVar15 + 0x256f4" (identifier "pcVar15") (+ "+") (number_literal "0x256f4")) () ")"))))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          FUN_00019c08();\nLAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);\n          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);\n        }" ({ "{") (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" (identifier "FUN_00019c08") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00019d6c:\n          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (statement_identifier "LAB_00019d6c") (: ":") (expression_statement "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);" (call_expression "(**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054)" (parenthesized_expression "(**(code **)(pcVar15 + 0x25620))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x25620)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x25620)" (* "*") (cast_expression "(code **)(pcVar15 + 0x25620)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25620)" (( "(") (binary_expression "pcVar15 + 0x25620" (identifier "pcVar15") (+ "+") (number_literal "0x25620")) () ")"))))) () ")")) (argument_list "(unaff_s2,iVar3,unaff_s4 + -0x7054)" (( "(") (identifier "unaff_s2") (, ",") (identifier "iVar3") (, ",") (binary_expression "unaff_s4 + -0x7054" (identifier "unaff_s4") (+ "+") (number_literal "-0x7054")) () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar15 + 0x256b0))(unaff_s2);" (call_expression "(**(code **)(pcVar15 + 0x256b0))(unaff_s2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x256b0))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x256b0)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x256b0)" (* "*") (cast_expression "(code **)(pcVar15 + 0x256b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x256b0)" (( "(") (binary_expression "pcVar15 + 0x256b0" (identifier "pcVar15") (+ "+") (number_literal "0x256b0")) () ")"))))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00019cac;" (goto "goto") (statement_identifier "LAB_00019cac") (; ";")) (} "}"))) (expression_statement "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984);" (call_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))\n                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar15 + 0x25428))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar15 + 0x25428)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" (* "*") (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" (* "*") (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25428)" (( "(") (binary_expression "pcVar15 + 0x25428" (identifier "pcVar15") (+ "+") (number_literal "0x25428")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,\n                 *(int *)(pcVar15 + 0x25414) + -0x3984)" (( "(") (pointer_expression "**(undefined4 **)(pcVar15 + 0x25420)" (* "*") (pointer_expression "*(undefined4 **)(pcVar15 + 0x25420)" (* "*") (cast_expression "(undefined4 **)(pcVar15 + 0x25420)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25420)" (( "(") (binary_expression "pcVar15 + 0x25420" (identifier "pcVar15") (+ "+") (number_literal "0x25420")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" (* "*") (cast_expression "(int *)(pcVar15 + 0x25414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x25414)" (( "(") (binary_expression "pcVar15 + 0x25414" (identifier "pcVar15") (+ "+") (number_literal "0x25414")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0x1e2") (, ",") (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x3984" (pointer_expression "*(int *)(pcVar15 + 0x25414)" (* "*") (cast_expression "(int *)(pcVar15 + 0x25414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x25414)" (( "(") (binary_expression "pcVar15 + 0x25414" (identifier "pcVar15") (+ "+") (number_literal "0x25414")) () ")")))) (+ "+") (number_literal "-0x3984")) () ")"))) (; ";")) (goto_statement "goto LAB_00019dc0;" (goto "goto") (statement_identifier "LAB_00019dc0") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = 0x1dc;" (assignment_expression "uVar8 = 0x1dc" (identifier "uVar8") (= "=") (number_literal "0x1dc")) (; ";")) (expression_statement "iVar4 = **(int **)(pcVar15 + 0x25420);" (assignment_expression "iVar4 = **(int **)(pcVar15 + 0x25420)" (identifier "iVar4") (= "=") (pointer_expression "**(int **)(pcVar15 + 0x25420)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x25420)" (* "*") (cast_expression "(int **)(pcVar15 + 0x25420)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25420)" (( "(") (binary_expression "pcVar15 + 0x25420" (identifier "pcVar15") (+ "+") (number_literal "0x25420")) () ")")))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;" (assignment_expression "iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar15 + 0x25414) + -0x39b0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" (* "*") (cast_expression "(int *)(pcVar15 + 0x25414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x25414)" (( "(") (binary_expression "pcVar15 + 0x25414" (identifier "pcVar15") (+ "+") (number_literal "0x25414")) () ")")))) (+ "+") (number_literal "-0x39b0"))) (; ";")) (expression_statement "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);" (assignment_expression "pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428)" (identifier "pcVar14") (= "=") (cast_expression "(code *)**(undefined4 **)(pcVar15 + 0x25428)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar15 + 0x25428)" (* "*") (pointer_expression "*(undefined4 **)(pcVar15 + 0x25428)" (* "*") (cast_expression "(undefined4 **)(pcVar15 + 0x25428)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x25428)" (( "(") (binary_expression "pcVar15 + 0x25428" (identifier "pcVar15") (+ "+") (number_literal "0x25428")) () ")"))))))) (; ";")) (expression_statement "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;" (assignment_expression "uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0" (identifier "uVar7") (= "=") (binary_expression "*(int *)(pcVar15 + 0x25414) - 0x40a0" (pointer_expression "*(int *)(pcVar15 + 0x25414)" (* "*") (cast_expression "(int *)(pcVar15 + 0x25414)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x25414)" (( "(") (binary_expression "pcVar15 + 0x25414" (identifier "pcVar15") (+ "+") (number_literal "0x25414")) () ")")))) (- "-") (number_literal "0x40a0"))) (; ";")) (expression_statement "(*pcVar14)(iVar4,uVar7,0x1dc);" (call_expression "(*pcVar14)(iVar4,uVar7,0x1dc)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar4,uVar7,0x1dc)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar7") (, ",") (number_literal "0x1dc") () ")"))) (; ";")) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x254e8);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x254e8)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x254e8)" (* "*") (cast_expression "(int **)(pcVar14 + 0x254e8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254e8)" (( "(") (binary_expression "pcVar14 + 0x254e8" (identifier "pcVar14") (+ "+") (number_literal "0x254e8")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;" (assignment_expression "uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff" (identifier "uVar13") (= "=") (binary_expression "(uint)(pcVar15 + 0x2d3e8) & 0xff" (call_expression "(uint)(pcVar15 + 0x2d3e8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar15 + 0x2d3e8)" (( "(") (binary_expression "pcVar15 + 0x2d3e8" (identifier "pcVar15") (+ "+") (number_literal "0x2d3e8")) () ")"))) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "piVar12 = (int *)(uint)bStack_79;" (assignment_expression "piVar12 = (int *)(uint)bStack_79" (identifier "piVar12") (= "=") (cast_expression "(int *)(uint)bStack_79" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)bStack_79" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_79")))) (; ";")) (expression_statement "iStack_bc = *piVar11;" (assignment_expression "iStack_bc = *piVar11" (identifier "iStack_bc") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "iStack_b8 = iVar3;" (assignment_expression "iStack_b8 = iVar3" (identifier "iStack_b8") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piStack_b4 = piVar10;" (assignment_expression "piStack_b4 = piVar10" (identifier "piStack_b4") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "puStack_b0 = unaff_s2;" (assignment_expression "puStack_b0 = unaff_s2" (identifier "puStack_b0") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "iStack_ac = unaff_s3;" (assignment_expression "iStack_ac = unaff_s3" (identifier "iStack_ac") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "iStack_a8 = unaff_s4;" (assignment_expression "iStack_a8 = unaff_s4" (identifier "iStack_a8") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" (if "if") (parenthesized_expression "((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0))" (( "(") (binary_expression "(uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)" (( "(") (comma_expression "iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x74)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x74)" (* "*") (cast_expression "(int *)(iVar4 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x74)" (( "(") (binary_expression "iVar4 + 0x74" (identifier "iVar4") (+ "+") (number_literal "0x74")) () ")"))))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar13 = *(uint *)(iVar4 + 0x88);\n    if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }\n    goto LAB_0001a1dc;\n  }" ({ "{") (expression_statement "uVar13 = *(uint *)(iVar4 + 0x88);" (assignment_expression "uVar13 = *(uint *)(iVar4 + 0x88)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x88)" (* "*") (cast_expression "(uint *)(iVar4 + 0x88)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x88)" (( "(") (binary_expression "iVar4 + 0x88" (identifier "iVar4") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (if_statement "if (uVar13 != 0) {\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar13 == 0) {\n        trap(7);\n      }\n      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;\n      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);\n      goto LAB_0001a1e8;\n    }" ({ "{") (if_statement "if (uVar13 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar7 % uVar13) * 0x174 + iVar3" (identifier "iVar5") (= "=") (binary_expression "(uVar7 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar7 % uVar13) * 0x174" (parenthesized_expression "(uVar7 % uVar13)" (( "(") (binary_expression "uVar7 % uVar13" (identifier "uVar7") (% "%") (identifier "uVar13")) () ")")) (* "*") (number_literal "0x174")) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" (( "(") (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" (* "*") (cast_expression "(uint *)(iVar5 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xec)" (( "(") (binary_expression "iVar5 + 0xec" (identifier "iVar5") (+ "+") (number_literal "0xec")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar5 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar5 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xe8)" (( "(") (binary_expression "iVar5 + 0xe8" (identifier "iVar5") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (compound_statement "{\n        uVar1 = uVar7;\n        do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));\n      }" ({ "{") (expression_statement "uVar1 = uVar7;" (assignment_expression "uVar1 = uVar7" (identifier "uVar1") (= "=") (identifier "uVar7")) (; ";")) (do_statement "do {\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));" (do "do") (compound_statement "{\n          uVar1 = uVar1 + 1;\n          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;\n          if (uVar13 == 0) {\n            trap(7);\n          }\n          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;\n        }" ({ "{") (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" (identifier "uVar1") (= "=") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;" (if "if") (parenthesized_expression "(uVar7 + uVar13 == uVar1)" (( "(") (binary_expression "uVar7 + uVar13 == uVar1" (binary_expression "uVar7 + uVar13" (identifier "uVar7") (+ "+") (identifier "uVar13")) (== "==") (identifier "uVar1")) () ")")) (goto_statement "goto LAB_00019ee8;" (goto "goto") (statement_identifier "LAB_00019ee8") (; ";"))) (if_statement "if (uVar13 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;" (assignment_expression "iVar5 = (uVar1 % uVar13) * 0x174 + iVar3" (identifier "iVar5") (= "=") (binary_expression "(uVar1 % uVar13) * 0x174 + iVar3" (binary_expression "(uVar1 % uVar13) * 0x174" (parenthesized_expression "(uVar1 % uVar13)" (( "(") (binary_expression "uVar1 % uVar13" (identifier "uVar1") (% "%") (identifier "uVar13")) () ")")) (* "*") (number_literal "0x174")) (+ "+") (identifier "iVar3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8))" (( "(") (binary_expression "*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)" (pointer_expression "*(uint *)(iVar5 + 0xec)" (* "*") (cast_expression "(uint *)(iVar5 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xec)" (( "(") (binary_expression "iVar5 + 0xec" (identifier "iVar5") (+ "+") (number_literal "0xec")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar5 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar5 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xe8)" (( "(") (binary_expression "iVar5 + 0xe8" (identifier "iVar5") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" (identifier "unaff_s5") (= "=") (call_expression "FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12)" (identifier "FUN_00019e04") (argument_list "(iVar5,uVar7,uVar8,iVar6,1,piVar12)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar7") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (identifier "piVar12") () ")")))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (labeled_statement "LAB_00019ee8:\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (statement_identifier "LAB_00019ee8") (: ":") (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";"))) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" (if "if") (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x900, *piVar10 == 9)" (( "(") (comma_expression "uVar9 = 0x900, *piVar10 == 9" (assignment_expression "uVar9 = 0x900" (identifier "uVar9") (= "=") (number_literal "0x900")) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (compound_statement "{\n      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\n      goto LAB_0001aa44;\n    }" ({ "{") (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25264)" (( "(") (binary_expression "pcVar14 + 0x25264" (identifier "pcVar14") (+ "+") (number_literal "0x25264")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";")) (} "}"))) (goto_statement "goto LAB_0001a1dc;" (goto "goto") (statement_identifier "LAB_0001a1dc") (; ";")) (} "}"))) (if_statement "if ((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" (if "if") (parenthesized_expression "((0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))" (( "(") (binary_expression "(0x3ff < (int)uVar7) &&\n     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)uVar7)" (( "(") (binary_expression "0x3ff < (int)uVar7" (number_literal "0x3ff") (< "<") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) () ")")) (&& "&&") (parenthesized_expression "(piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0)" (( "(") (comma_expression "piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x25258)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int **)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")"))))) (, ",") (binary_expression "(*(uint *)(iVar4 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 0x240)" (( "(") (binary_expression "*(uint *)(iVar4 + 0xf8) & 0x240" (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001a2ec;" (goto "goto") (statement_identifier "LAB_0001a2ec") (; ";"))) (expression_statement "unaff_s5 = iVar4;" (assignment_expression "unaff_s5 = iVar4" (identifier "unaff_s5") (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec))" (( "(") (binary_expression "*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)" (pointer_expression "*(int *)(iVar4 + 0xe8)" (* "*") (cast_expression "(int *)(iVar4 + 0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xe8)" (( "(") (binary_expression "iVar4 + 0xe8" (identifier "iVar4") (+ "+") (number_literal "0xe8")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar4 + 0xec)" (* "*") (cast_expression "(int *)(iVar4 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xec)" (( "(") (binary_expression "iVar4 + 0xec" (identifier "iVar4") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar10 = 0x17;\n    goto LAB_0001a1e8;\n  }" ({ "{") (labeled_statement "LAB_0001a190:\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" (statement_identifier "LAB_0001a190") (: ":") (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x38dc")) () ")"))) (; ";"))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;" (if "if") (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x93d, *piVar10 == 9)" (( "(") (comma_expression "uVar9 = 0x93d, *piVar10 == 9" (assignment_expression "uVar9 = 0x93d" (identifier "uVar9") (= "=") (number_literal "0x93d")) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" (statement_identifier "LAB_0001a1dc") (: ":") (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "*piVar10 = 0x17;" (assignment_expression "*piVar10 = 0x17" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (number_literal "0x17")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar4 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x70)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x70)" (* "*") (cast_expression "(int *)(iVar4 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x70)" (( "(") (binary_expression "iVar4 + 0x70" (identifier "iVar4") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (while_statement "while (iVar5 = iVar3, iVar5 != 0) {\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" (while "while") (parenthesized_expression "(iVar5 = iVar3, iVar5 != 0)" (( "(") (comma_expression "iVar5 = iVar3, iVar5 != 0" (assignment_expression "iVar5 = iVar3" (identifier "iVar5") (= "=") (identifier "iVar3")) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    unaff_s5 = iVar5;\n    iVar3 = *(int *)(iVar5 + 0x70);\n  }" ({ "{") (expression_statement "unaff_s5 = iVar5;" (assignment_expression "unaff_s5 = iVar5" (identifier "unaff_s5") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar3 = *(int *)(iVar5 + 0x70);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x70)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar5 + 0x70)" (* "*") (cast_expression "(int *)(iVar5 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x70)" (( "(") (binary_expression "iVar5 + 0x70" (identifier "iVar5") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" (( "(") (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" (* "*") (cast_expression "(int *)(unaff_s5 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5 + 0xf4)" (( "(") (binary_expression "unaff_s5 + 0xf4" (identifier "unaff_s5") (+ "+") (number_literal "0xf4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);\n    if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n  }" ({ "{") (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18)" (identifier "unaff_s8") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25458))(0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25458))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25458))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25458)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25458)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25458)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25458)" (( "(") (binary_expression "pcVar14 + 0x25458" (identifier "pcVar14") (+ "+") (number_literal "0x25458")) () ")"))))) () ")")) (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" (if "if") (parenthesized_expression "(unaff_s8 == (int *)0x0)" (( "(") (binary_expression "unaff_s8 == (int *)0x0" (identifier "unaff_s8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";"))) (expression_statement "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);" (assignment_expression "iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8)" (identifier "iVar3") (= "=") (call_expression "FUN_0001996c(uVar8,iVar6,unaff_s8)" (identifier "FUN_0001996c") (argument_list "(uVar8,iVar6,unaff_s8)" (( "(") (identifier "uVar8") (, ",") (identifier "iVar6") (, ",") (identifier "unaff_s8") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = unaff_s5 + 0x94;\n      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);\n      if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);\n      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar10 = 0x16;\n      goto LAB_0001a1e8;\n    }" ({ "{") (expression_statement "iVar3 = unaff_s5 + 0x94;" (assignment_expression "iVar3 = unaff_s5 + 0x94" (identifier "iVar3") (= "=") (binary_expression "unaff_s5 + 0x94" (identifier "unaff_s5") (+ "+") (number_literal "0x94"))) (; ";")) (expression_statement "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);" (assignment_expression "iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar14 + 0x254a4))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254a4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254a4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254a4)" (( "(") (binary_expression "pcVar14 + 0x254a4" (identifier "pcVar14") (+ "+") (number_literal "0x254a4")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_0001ab68;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab68;" (goto "goto") (statement_identifier "LAB_0001ab68") (; ";"))) (expression_statement "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);" (assignment_expression "puVar2 = (undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)\n               (**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25410))\n                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25410))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25410)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25410)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25410)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25410)" (( "(") (binary_expression "pcVar14 + 0x25410" (identifier "pcVar14") (+ "+") (number_literal "0x25410")) () ")"))))) () ")")) (argument_list "(unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054)" (( "(") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s5 + 0x78" (identifier "unaff_s5") (+ "+") (number_literal "0x78")) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x7054" (pointer_expression "*(int *)(pcVar14 + 0x25280)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25280)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25280)" (( "(") (binary_expression "pcVar14 + 0x25280" (identifier "pcVar14") (+ "+") (number_literal "0x25280")) () ")")))) (+ "+") (number_literal "-0x7054")) () ")"))))) (; ";")) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined4 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);\n        FUN_00020df0(unaff_s5,piVar10);\n        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);\n        if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" ({ "{") (expression_statement "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);" (assignment_expression "piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" (identifier "piVar10") (= "=") (cast_expression "(int *)(*(int *)(pcVar14 + 0x25258) + -0x3904)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar14 + 0x25258) + -0x3904)" (( "(") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3904" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x3904")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(unaff_s5,piVar10);" (call_expression "FUN_00020df0(unaff_s5,piVar10)" (identifier "FUN_00020df0") (argument_list "(unaff_s5,piVar10)" (( "(") (identifier "unaff_s5") (, ",") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25538))(iVar3)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25538)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25538)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25538)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25538)" (( "(") (binary_expression "pcVar14 + 0x25538" (identifier "pcVar14") (+ "+") (number_literal "0x25538")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n          goto LAB_0001a190;\n        }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" (else "else") (compound_statement "{\n        piVar10 = (int *)*puVar2;\n        if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }\n        pcVar15 = *(code **)(pcVar14 + 0x25538);\n        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }\n      }" ({ "{") (expression_statement "piVar10 = (int *)*puVar2;" (assignment_expression "piVar10 = (int *)*puVar2" (identifier "piVar10") (= "=") (cast_expression "(int *)*puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if (unaff_s8 != piVar10) {\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" (if "if") (parenthesized_expression "(unaff_s8 != piVar10)" (( "(") (binary_expression "unaff_s8 != piVar10" (identifier "unaff_s8") (!= "!=") (identifier "piVar10")) () ")")) (compound_statement "{\n          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25538)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25538)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25538)" (( "(") (binary_expression "pcVar14 + 0x25538" (identifier "pcVar14") (+ "+") (number_literal "0x25538")) () ")"))))) (; ";")) (if_statement "if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" (if "if") (parenthesized_expression "((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4))" (( "(") (binary_expression "(uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar10[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar10[5]" (identifier "piVar10") ([ "[") (number_literal "5") (] "]"))) (< "<") (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" (* "*") (cast_expression "(uint *)(unaff_s5 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5 + 0xf4)" (( "(") (binary_expression "unaff_s5 + 0xf4" (identifier "unaff_s5") (+ "+") (number_literal "0xf4")) () ")"))))) () ")")) (compound_statement "{\n          piVar10[5] = piVar10[5] + 1;\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_00019f70;\n        }" ({ "{") (expression_statement "piVar10[5] = piVar10[5] + 1;" (assignment_expression "piVar10[5] = piVar10[5] + 1" (subscript_expression "piVar10[5]" (identifier "piVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "piVar10[5] + 1" (subscript_expression "piVar10[5]" (identifier "piVar10") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00019f70;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019f70;" (goto "goto") (statement_identifier "LAB_00019f70") (; ";"))) (} "}")) (else_clause "else {\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" (else "else") (compound_statement "{\n          iVar3 = (*pcVar15)(iVar3);\n          if (iVar3 == 0) goto LAB_0001a190;\n        }" ({ "{") (expression_statement "iVar3 = (*pcVar15)(iVar3);" (assignment_expression "iVar3 = (*pcVar15)(iVar3)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(iVar3)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001a190;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";"))) (} "}")))) (} "}")))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" (identifier "FUN_00019c08") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" (statement_identifier "LAB_0001a2ec") (: ":") (expression_statement "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);" (call_expression "FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400)" (identifier "FUN_00020df0") (argument_list "(iVar4,piVar10 + -0xe4e,uVar7,0x400)" (( "(") (identifier "iVar4") (, ",") (binary_expression "piVar10 + -0xe4e" (identifier "piVar10") (+ "+") (number_literal "-0xe4e")) (, ",") (identifier "uVar7") (, ",") (number_literal "0x400") () ")"))) (; ";"))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;" (if "if") (parenthesized_expression "((iVar3 != 0) && (*piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (*piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*piVar10 == 9)" (( "(") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9")) () ")"))) () ")")) (goto_statement "goto LAB_0001ab78;" (goto "goto") (statement_identifier "LAB_0001ab78") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" (statement_identifier "LAB_00019f70") (: ":") (if_statement "if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)) {\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "((*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0))" (( "(") (binary_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(iVar4 + 0x40) != (code *)0x0)" (( "(") (binary_expression "*(code **)(iVar4 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x40)" (* "*") (cast_expression "(code **)(iVar4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0)" (( "(") (comma_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" (identifier "unaff_s5") (= "=") (call_expression "(**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" (parenthesized_expression "(**(code **)(iVar4 + 0x40))" (( "(") (pointer_expression "**(code **)(iVar4 + 0x40)" (* "*") (pointer_expression "*(code **)(iVar4 + 0x40)" (* "*") (cast_expression "(code **)(iVar4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x44)" (( "(") (binary_expression "iVar4 + 0x44" (identifier "iVar4") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")")))) (, ",") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      uVar9 = 0x950;\n      if (*piVar10 == 9) goto LAB_0001aa40;\n    }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar9 = 0x950;" (assignment_expression "uVar9 = 0x950" (identifier "uVar9") (= "=") (number_literal "0x950")) (; ";")) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" (if "if") (parenthesized_expression "(*piVar10 == 9)" (( "(") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (} "}"))) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}")))) (expression_statement "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);" (assignment_expression "unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" (identifier "unaff_s8") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25340))(1,0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25340))(1,0x100)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25340))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25340)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25340)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25340)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25340)" (( "(") (binary_expression "pcVar14 + 0x25340" (identifier "pcVar14") (+ "+") (number_literal "0x25340")) () ")"))))) () ")")) (argument_list "(1,0x100)" (( "(") (number_literal "1") (, ",") (number_literal "0x100") () ")"))))) (; ";")) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(unaff_s8 == (int *)0x0)" (( "(") (binary_expression "unaff_s8 == (int *)0x0" (identifier "unaff_s8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25450)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25450)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25450)" (( "(") (binary_expression "pcVar14 + 0x25450" (identifier "pcVar14") (+ "+") (number_literal "0x25450")) () ")"))))) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;" (if "if") (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x962, *piVar10 == 9)" (( "(") (comma_expression "uVar9 = 0x962, *piVar10 == 9" (assignment_expression "uVar9 = 0x962" (identifier "uVar9") (= "=") (number_literal "0x962")) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));" (assignment_expression "iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" (identifier "iVar3") (= "=") (call_expression "FUN_00021248(*(undefined4 *)(iVar4 + 0x7c))" (identifier "FUN_00021248") (argument_list "(*(undefined4 *)(iVar4 + 0x7c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x7c)" (( "(") (binary_expression "iVar4 + 0x7c" (identifier "iVar4") (+ "+") (number_literal "0x7c")) () ")")))) () ")")))) (; ";")) (expression_statement "unaff_s8[10] = iVar3;" (assignment_expression "unaff_s8[10] = iVar3" (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar12 = 0xc;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar12") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25450))(*piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25450)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25450)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25450)" (( "(") (binary_expression "pcVar14 + 0x25450" (identifier "pcVar14") (+ "+") (number_literal "0x25450")) () ")"))))) () ")")) (argument_list "(*piVar12)" (( "(") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;" (if "if") (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x971, *piVar12 == 9)" (( "(") (comma_expression "uVar9 = 0x971, *piVar12 == 9" (assignment_expression "uVar9 = 0x971" (identifier "uVar9") (= "=") (number_literal "0x971")) (, ",") (binary_expression "*piVar12 == 9" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "*piVar12 = 0xc;" (assignment_expression "*piVar12 = 0xc" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25458);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25458)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25458)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25458)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25458)" (( "(") (binary_expression "pcVar14 + 0x25458" (identifier "pcVar14") (+ "+") (number_literal "0x25458")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(iVar4 + 0xf0)" (subscript_expression "unaff_s8[0x26]" (identifier "unaff_s8") ([ "[") (number_literal "0x26") (] "]")) (= "=") (pointer_expression "*(int *)(iVar4 + 0xf0)" (* "*") (cast_expression "(int *)(iVar4 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf0)" (( "(") (binary_expression "iVar4 + 0xf0" (identifier "iVar4") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (expression_statement "iVar3 = (*pcVar15)(iVar6);" (assignment_expression "iVar3 = (*pcVar15)(iVar6)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(iVar6)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "unaff_s8[0x15] = iVar3;" (assignment_expression "unaff_s8[0x15] = iVar3" (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    piVar12 = (int *)*piVar10;\n    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);\n    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;\n    unaff_s5 = 0;\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    FUN_00021358(unaff_s8[10]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    *piVar10 = (int)piVar12;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar12 = (int *)*piVar10;" (assignment_expression "piVar12 = (int *)*piVar10" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25450))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25450)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25450)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25450)" (( "(") (binary_expression "pcVar14 + 0x25450" (identifier "pcVar14") (+ "+") (number_literal "0x25450")) () ")"))))) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x389c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;" (if "if") (parenthesized_expression "((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = 0x985, *piVar10 == 9)" (( "(") (comma_expression "uVar9 = 0x985, *piVar10 == 9" (assignment_expression "uVar9 = 0x985" (identifier "uVar9") (= "=") (number_literal "0x985")) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" (identifier "FUN_00021358") (argument_list "(unaff_s8[10])" (( "(") (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "*piVar10 = (int)piVar12;" (assignment_expression "*piVar10 = (int)piVar12" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);" (call_expression "(**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254ec))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254ec)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254ec)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254ec)" (( "(") (binary_expression "pcVar14 + 0x254ec" (identifier "pcVar14") (+ "+") (number_literal "0x254ec")) () ")"))))) () ")")) (argument_list "(iVar3,uVar8,iVar6)" (( "(") (identifier "iVar3") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "unaff_s8[0x24] = iVar6;" (assignment_expression "unaff_s8[0x24] = iVar6" (subscript_expression "unaff_s8[0x24]" (identifier "unaff_s8") ([ "[") (number_literal "0x24") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "unaff_s8[0x29] = uVar7;" (assignment_expression "unaff_s8[0x29] = uVar7" (subscript_expression "unaff_s8[0x29]" (identifier "unaff_s8") ([ "[") (number_literal "0x29") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = bStack_79;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = bStack_79" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" (* "*") (cast_expression "(byte *)(unaff_s8 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8 + 0x2a)" (( "(") (binary_expression "unaff_s8 + 0x2a" (identifier "unaff_s8") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (identifier "bStack_79")) (; ";")) (expression_statement "unaff_s8[6] = iVar4;" (assignment_expression "unaff_s8[6] = iVar4" (subscript_expression "unaff_s8[6]" (identifier "unaff_s8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar3 = FUN_0002186c();" (assignment_expression "iVar3 = FUN_0002186c()" (identifier "iVar3") (= "=") (call_expression "FUN_0002186c()" (identifier "FUN_0002186c") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x25] = iVar3;" (assignment_expression "unaff_s8[0x25] = iVar3" (subscript_expression "unaff_s8[0x25]" (identifier "unaff_s8") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if ((uVar1 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" (if "if") (parenthesized_expression "((uVar1 & 2) == 0)" (( "(") (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" (( "(") (binary_expression "uVar1 & 2" (identifier "uVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);\n    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);\n    uVar9 = 0x9e4;\n    if (iVar3 != 0) goto LAB_0001ab44;\n    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }\n  }" ({ "{") (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" (identifier "FUN_00015248") (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (labeled_statement "LAB_0001a03c:\n    piVar12 = (int *)(iVar4 + 0xac);" (statement_identifier "LAB_0001a03c") (: ":") (expression_statement "piVar12 = (int *)(iVar4 + 0xac);" (assignment_expression "piVar12 = (int *)(iVar4 + 0xac)" (identifier "piVar12") (= "=") (cast_expression "(int *)(iVar4 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xac)" (( "(") (binary_expression "iVar4 + 0xac" (identifier "iVar4") (+ "+") (number_literal "0xac")) () ")")))) (; ";"))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254a4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254a4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254a4)" (( "(") (binary_expression "pcVar14 + 0x254a4" (identifier "pcVar14") (+ "+") (number_literal "0x254a4")) () ")"))))) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "uVar9 = 0x9e4;" (assignment_expression "uVar9 = 0x9e4" (identifier "uVar9") (= "=") (number_literal "0x9e4")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0001ab44;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab44;" (goto "goto") (statement_identifier "LAB_0001ab44") (; ";"))) (if_statement "if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec))" (( "(") (binary_expression "*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)" (pointer_expression "*(uint *)(iVar4 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xe8)" (( "(") (binary_expression "iVar4 + 0xe8" (identifier "iVar4") (+ "+") (number_literal "0xe8")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar4 + 0xec)" (* "*") (cast_expression "(uint *)(iVar4 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xec)" (( "(") (binary_expression "iVar4 + 0xec" (identifier "iVar4") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\n      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;\n      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }\n      iVar3 = *(int *)(iVar4 + 8);\n      iVar5 = *(int *)(iVar4 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar3;\n      if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }\n      pcVar15 = *(code **)(pcVar14 + 0x25538);\n      *(int **)(iVar4 + 8) = unaff_s8;\n      iVar3 = (*pcVar15)(piVar12);\n      uVar9 = 0xa01;\n      if (iVar3 != 0) goto LAB_0001ab1c;\n      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar1 = *(uint *)(iVar4 + 0xf8);\n      if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }\n      auStack_d0[0] = 0x80000007;\n      piStack_c8 = unaff_s8;\n      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);\n      if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      unaff_s5 = *piVar10;\n      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);\n      goto LAB_0001a72c;\n    }" ({ "{") (expression_statement "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;" (assignment_expression "*(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xe8)" (( "(") (binary_expression "iVar4 + 0xe8" (identifier "iVar4") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar4 + 0xe8) + 1" (pointer_expression "*(uint *)(iVar4 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xe8)" (( "(") (binary_expression "iVar4 + 0xe8" (identifier "iVar4") (+ "+") (number_literal "0xe8")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" (if "if") (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x30);\n        iVar5 = *(int *)(iVar4 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar3;\n        if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }\n        *(int **)(iVar4 + 0x30) = unaff_s8;\n      }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x30)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x30)" (* "*") (cast_expression "(int *)(iVar4 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[4] = iVar3;" (assignment_expression "unaff_s8[4] = iVar3" (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar5 == 0) {\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int **)(iVar4 + 0x34) = unaff_s8;\n        }" ({ "{") (expression_statement "*(int **)(iVar4 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x34) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x34)" (* "*") (cast_expression "(int **)(iVar4 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")) (else_clause "else {\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" (else "else") (compound_statement "{\n          *(int **)(iVar3 + 0x14) = unaff_s8;\n        }" ({ "{") (expression_statement "*(int **)(iVar3 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0x14)" (* "*") (cast_expression "(int **)(iVar3 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")))) (expression_statement "*(int **)(iVar4 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x30) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x30)" (* "*") (cast_expression "(int **)(iVar4 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar4 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[2] = iVar3;" (assignment_expression "unaff_s8[2] = iVar3" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar5 == 0) {\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int **)(iVar4 + 0xc) = unaff_s8;\n      }" ({ "{") (expression_statement "*(int **)(iVar4 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")) (else_clause "else {\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" (else "else") (compound_statement "{\n        *(int **)(iVar3 + 0xc) = unaff_s8;\n      }" ({ "{") (expression_statement "*(int **)(iVar3 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 0xc)" (* "*") (cast_expression "(int **)(iVar3 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25538)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25538)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25538)" (( "(") (binary_expression "pcVar14 + 0x25538" (identifier "pcVar14") (+ "+") (number_literal "0x25538")) () ")"))))) (; ";")) (expression_statement "*(int **)(iVar4 + 8) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 8) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 8)" (* "*") (cast_expression "(int **)(iVar4 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "uVar9 = 0xa01;" (assignment_expression "uVar9 = 0xa01" (identifier "uVar9") (= "=") (number_literal "0xa01")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab1c;" (goto "goto") (statement_identifier "LAB_0001ab1c") (; ";"))) (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" (if "if") (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" (( "(") (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" (* "*") (cast_expression "(code **)(iVar4 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" ({ "{") (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" (( "(") (pointer_expression "**(code **)(iVar4 + 0x50)" (* "*") (pointer_expression "*(code **)(iVar4 + 0x50)" (* "*") (cast_expression "(code **)(iVar4 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x54)" (( "(") (binary_expression "iVar4 + 0x54" (identifier "iVar4") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s8 + 0xc" (identifier "unaff_s8") (+ "+") (number_literal "0xc")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 4) == 0) {\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" (if "if") (parenthesized_expression "((uVar1 & 4) == 0)" (( "(") (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = *(int *)(iVar4 + 0x90);\n        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);\n        unaff_s8[0x17] = iVar3;\n        if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar4 + 0x90);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x90)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x90)" (* "*") (cast_expression "(int *)(iVar4 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x90)" (( "(") (binary_expression "iVar4 + 0x90" (identifier "iVar4") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(iVar4 + 0x8c)" (subscript_expression "unaff_s8[0x16]" (identifier "unaff_s8") ([ "[") (number_literal "0x16") (] "]")) (= "=") (pointer_expression "*(int *)(iVar4 + 0x8c)" (* "*") (cast_expression "(int *)(iVar4 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8c)" (( "(") (binary_expression "iVar4 + 0x8c" (identifier "iVar4") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x17] = iVar3;" (assignment_expression "unaff_s8[0x17] = iVar3" (subscript_expression "unaff_s8[0x17]" (identifier "unaff_s8") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if ((uVar1 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x200) == 0)" (( "(") (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" (( "(") (binary_expression "uVar1 & 0x200" (identifier "uVar1") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (uVar13 == 0) goto LAB_0001a1e8;\n          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);\n          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" ({ "{") (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" (statement_identifier "LAB_0001a9b8") (: ":") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (uVar13 == 0) goto LAB_0001a1e8;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";"))) (if_statement "if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0xdc) == -1)" (( "(") (binary_expression "*(int *)(iVar4 + 0xdc) == -1" (pointer_expression "*(int *)(iVar4 + 0xdc)" (* "*") (cast_expression "(int *)(iVar4 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xdc)" (( "(") (binary_expression "iVar4 + 0xdc" (identifier "iVar4") (+ "+") (number_literal "0xdc")) () ")")))) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";"))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x2541c))\n                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2541c))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x2541c)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x2541c)" (* "*") (cast_expression "(code **)(pcVar14 + 0x2541c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x2541c)" (( "(") (binary_expression "pcVar14 + 0x2541c" (identifier "pcVar14") (+ "+") (number_literal "0x2541c")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8)" (( "(") (pointer_expression "*(int *)(iVar4 + 0xdc)" (* "*") (cast_expression "(int *)(iVar4 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xdc)" (( "(") (binary_expression "iVar4 + 0xdc" (identifier "iVar4") (+ "+") (number_literal "0xdc")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x28d8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x28d8")) (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))\n          {\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" (if "if") (parenthesized_expression "((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))" (( "(") (binary_expression "(iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" (parenthesized_expression "(iVar3 < 1)" (( "(") (binary_expression "iVar3 < 1" (identifier "iVar3") (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb)" (( "(") (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar10 != 0xb" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (!= "!=") (number_literal "0xb"))) () ")"))) () ")")) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);\n            goto LAB_0001a1e8;\n          }" ({ "{") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x37f4" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x37f4")) () ")"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" (statement_identifier "LAB_0001a8dc") (: ":") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" (else "else") (compound_statement "{\n        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);\n        if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }\n        uVar1 = *(uint *)(iVar4 + 0xf8);\n        if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" ({ "{") (expression_statement "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8);" (assignment_expression "iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" (identifier "iVar3") (= "=") (call_expression "FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" (identifier "FUN_00023bd4") (argument_list "(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,\n                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,\n                             unaff_s8)" (( "(") (binary_expression "unaff_s8 + 0x16" (identifier "unaff_s8") (+ "+") (number_literal "0x16")) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3824" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x3824")) (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x84)" (( "(") (binary_expression "iVar4 + 0x84" (identifier "iVar4") (+ "+") (number_literal "0x84")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x445c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25280)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25280)" (( "(") (binary_expression "pcVar14 + 0x25280" (identifier "pcVar14") (+ "+") (number_literal "0x25280")) () ")")))) (+ "+") (number_literal "-0x445c")) (, ",") (identifier "unaff_s8") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n          unaff_s5 = *piVar10;\n          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);\n          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);\n          goto LAB_0001a72c;\n        }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" (identifier "unaff_s5") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25450)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25450)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25450)" (( "(") (binary_expression "pcVar14 + 0x25450" (identifier "pcVar14") (+ "+") (number_literal "0x25450")) () ")"))))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3814" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x3814")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (goto_statement "goto LAB_0001a72c;" (goto "goto") (statement_identifier "LAB_0001a72c") (; ";")) (} "}"))) (expression_statement "uVar1 = *(uint *)(iVar4 + 0xf8);" (assignment_expression "uVar1 = *(uint *)(iVar4 + 0xf8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 0x200) == 0) {\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x200) == 0)" (( "(") (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" (( "(") (binary_expression "uVar1 & 0x200" (identifier "uVar1") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" ({ "{") (if_statement "if ((uVar1 & 4) != 0) goto LAB_0001a8dc;" (if "if") (parenthesized_expression "((uVar1 & 4) != 0)" (( "(") (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a8dc;" (goto "goto") (statement_identifier "LAB_0001a8dc") (; ";"))) (goto_statement "goto LAB_0001a9b8;" (goto "goto") (statement_identifier "LAB_0001a9b8") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uVar1 & 0x1000) == 0) {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }\n      else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" (if "if") (parenthesized_expression "((uVar1 & 0x1000) == 0)" (( "(") (binary_expression "(uVar1 & 0x1000) == 0" (parenthesized_expression "(uVar1 & 0x1000)" (( "(") (binary_expression "uVar1 & 0x1000" (identifier "uVar1") (& "&") (number_literal "0x1000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n      }" ({ "{") (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25474)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25474)" (( "(") (binary_expression "pcVar14 + 0x25474" (identifier "pcVar14") (+ "+") (number_literal "0x25474")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" (else "else") (compound_statement "{\n        pcVar15 = *(code **)(pcVar14 + 0x25474);\n        if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n      }" ({ "{") (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25474);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25474)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25474)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25474)" (( "(") (binary_expression "pcVar14 + 0x25474" (identifier "pcVar14") (+ "+") (number_literal "0x25474")) () ")"))))) (; ";")) (if_statement "if (uVar13 == 0) {\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = *(int *)(iVar4 + 0x20);\n          iVar6 = *(int *)(iVar4 + 0x24);\n          unaff_s8[1] = 0;\n          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n          *unaff_s8 = iVar3;\n          if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }\n          *(int **)(iVar3 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(iVar4 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar4 + 0x20);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x20)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x20)" (* "*") (cast_expression "(int *)(iVar4 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar4 + 0x24);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x24)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar4 + 0x24)" (* "*") (cast_expression "(int *)(iVar4 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" (identifier "unaff_s8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (| "|") (number_literal "7"))) (; ";")) (expression_statement "*unaff_s8 = iVar3;" (assignment_expression "*unaff_s8 = iVar3" (pointer_expression "*unaff_s8" (* "*") (identifier "unaff_s8")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar6 == 0) {\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int **)(iVar4 + 0x24) = unaff_s8;\n            unaff_s5 = 1;\n            *(int **)(iVar4 + 0x20) = unaff_s8;\n            goto LAB_0001a1e8;\n          }" ({ "{") (expression_statement "*(int **)(iVar4 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x24) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x24)" (* "*") (cast_expression "(int **)(iVar4 + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" (* "*") (cast_expression "(int **)(iVar4 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "*(int **)(iVar3 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar3 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int **)(iVar4 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(iVar4 + 0x20) = unaff_s8" (pointer_expression "*(int **)(iVar4 + 0x20)" (* "*") (cast_expression "(int **)(iVar4 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (} "}")))) (expression_statement "auStack_d0[0] = 0x80000007;" (assignment_expression "auStack_d0[0] = 0x80000007" (subscript_expression "auStack_d0[0]" (identifier "auStack_d0") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x80000007")) (; ";")) (expression_statement "piStack_c8 = unaff_s8;" (assignment_expression "piStack_c8 = unaff_s8" (identifier "piStack_c8") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);" (assignment_expression "iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xcc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xcc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xcc)" (( "(") (binary_expression "iVar4 + 0xcc" (identifier "iVar4") (+ "+") (number_literal "0xcc")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (identifier "auStack_d0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" ({ "{") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (| "|") (number_literal "8"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "unaff_s5 = *piVar10;" (assignment_expression "unaff_s5 = *piVar10" (identifier "unaff_s5") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);" (assignment_expression "uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25450))(unaff_s5)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25450))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25450)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25450)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25450)" (( "(") (binary_expression "pcVar14 + 0x25450" (identifier "pcVar14") (+ "+") (number_literal "0x25450")) () ")"))))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x4da8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x4da8")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (goto_statement "goto LAB_0001a72c;" (goto "goto") (statement_identifier "LAB_0001a72c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" (else "else") (compound_statement "{\n    piVar12 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);\n    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));\n    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);\n    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);\n    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }\n    FUN_00019c48(iVar4,uVar8,iVar6);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);\n  }" ({ "{") (expression_statement "piVar12 = (int *)0x1;" (assignment_expression "piVar12 = (int *)0x1" (identifier "piVar12") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" (identifier "unaff_s8") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" (identifier "FUN_00029db0") (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);" (call_expression "(**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25414))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25414)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25414)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25414)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25414)" (( "(") (binary_expression "pcVar14 + 0x25414" (identifier "pcVar14") (+ "+") (number_literal "0x25414")) () ")"))))) () ")")) (argument_list "(unaff_s8 + 0x39,0x49)" (( "(") (binary_expression "unaff_s8 + 0x39" (identifier "unaff_s8") (+ "+") (number_literal "0x39")) (, ",") (number_literal "0x49") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));" (call_expression "(**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253ac))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x253ac)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x253ac)" (* "*") (cast_expression "(code **)(pcVar14 + 0x253ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x253ac)" (( "(") (binary_expression "pcVar14 + 0x253ac" (identifier "pcVar14") (+ "+") (number_literal "0x253ac")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10c)" (( "(") (binary_expression "iVar4 + 0x10c" (identifier "iVar4") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25454))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25454)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25454)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25454)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25454)" (( "(") (binary_expression "pcVar14 + 0x25454" (identifier "pcVar14") (+ "+") (number_literal "0x25454")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],unaff_s8)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (identifier "unaff_s8") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar4 + 0x110) == 1) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 1)" (( "(") (binary_expression "*(int *)(iVar4 + 0x110) == 1" (pointer_expression "*(int *)(iVar4 + 0x110)" (* "*") (cast_expression "(int *)(iVar4 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x110)" (( "(") (binary_expression "iVar4 + 0x110" (identifier "iVar4") (+ "+") (number_literal "0x110")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));\nLAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);\n      if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x253d4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x253d4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x253d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x253d4)" (( "(") (binary_expression "pcVar14 + 0x253d4" (identifier "pcVar14") (+ "+") (number_literal "0x253d4")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x114)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x114)" (( "(") (binary_expression "iVar4 + 0x114" (identifier "iVar4") (+ "+") (number_literal "0x114")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0001a950:\n      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" (statement_identifier "LAB_0001a950") (: ":") (expression_statement "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);" (call_expression "(**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x253e8))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x253e8)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x253e8)" (* "*") (cast_expression "(code **)(pcVar14 + 0x253e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x253e8)" (( "(") (binary_expression "pcVar14 + 0x253e8" (identifier "pcVar14") (+ "+") (number_literal "0x253e8")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],uVar7,uVar7)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (identifier "uVar7") (, ",") (identifier "uVar7") () ")"))) (; ";"))) (if_statement "if (*(int *)(iVar4 + 0x138) != 0) {\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x138) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x138) != 0" (pointer_expression "*(int *)(iVar4 + 0x138)" (* "*") (cast_expression "(int *)(iVar4 + 0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x138)" (( "(") (binary_expression "iVar4 + 0x138" (identifier "iVar4") (+ "+") (number_literal "0x138")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);\n      }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);" (call_expression "(**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25470))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25470)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25470)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25470)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25470)" (( "(") (binary_expression "pcVar14 + 0x25470" (identifier "pcVar14") (+ "+") (number_literal "0x25470")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],1)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001a03c;" (goto "goto") (statement_identifier "LAB_0001a03c") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x110) == 4) {\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x110) == 4)" (( "(") (binary_expression "*(int *)(iVar4 + 0x110) == 4" (pointer_expression "*(int *)(iVar4 + 0x110)" (* "*") (cast_expression "(int *)(iVar4 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x110)" (( "(") (binary_expression "iVar4 + 0x110" (identifier "iVar4") (+ "+") (number_literal "0x110")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));\n      (**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);\n      goto LAB_0001a950;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));" (call_expression "(**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" (parenthesized_expression "(**(code **)(pcVar14 + 0x253d4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x253d4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x253d4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x253d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x253d4)" (( "(") (binary_expression "pcVar14 + 0x253d4" (identifier "pcVar14") (+ "+") (number_literal "0x253d4")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11c)" (( "(") (binary_expression "iVar4 + 0x11c" (identifier "iVar4") (+ "+") (number_literal "0x11c")) () ")")))) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);" (call_expression "(**(code **)(pcVar14 + 0x25434))\n                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25434))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25434)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25434)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25434)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25434)" (( "(") (binary_expression "pcVar14 + 0x25434" (identifier "pcVar14") (+ "+") (number_literal "0x25434")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x11c)" (( "(") (binary_expression "iVar4 + 0x11c" (identifier "iVar4") (+ "+") (number_literal "0x11c")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25280) + -0x703c" (pointer_expression "*(int *)(pcVar14 + 0x25280)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25280)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25280)" (( "(") (binary_expression "pcVar14 + 0x25280" (identifier "pcVar14") (+ "+") (number_literal "0x25280")) () ")")))) (+ "+") (number_literal "-0x703c")) () ")"))) (; ";")) (goto_statement "goto LAB_0001a950;" (goto "goto") (statement_identifier "LAB_0001a950") (; ";")) (} "}"))) (expression_statement "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" (identifier "FUN_00020df0") (argument_list "(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c)" (( "(") (subscript_expression "unaff_s8[6]" (identifier "unaff_s8") ([ "[") (number_literal "6") (] "]")) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x387c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x387c")) () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" (if "if") (parenthesized_expression "((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9))" (( "(") (binary_expression "(iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)" (( "(") (comma_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (compound_statement "{\n      uVar9 = 0x9c3;\n      goto LAB_0001aa40;\n    }" ({ "{") (expression_statement "uVar9 = 0x9c3;" (assignment_expression "uVar9 = 0x9c3" (identifier "uVar9") (= "=") (number_literal "0x9c3")) (; ";")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";")) (} "}"))) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x15])" (( "(") (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x2526c)" (( "(") (binary_expression "pcVar14 + 0x2526c" (identifier "pcVar14") (+ "+") (number_literal "0x2526c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,\n               *(int *)(pcVar14 + 0x25258) + -0x383c)" (( "(") (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25264)" (( "(") (binary_expression "pcVar14 + 0x25264" (identifier "pcVar14") (+ "+") (number_literal "0x25264")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0x9c9") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x383c" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x383c")) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25538))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25538))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25538)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25538)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25538)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25538)" (( "(") (binary_expression "pcVar14 + 0x25538" (identifier "pcVar14") (+ "+") (number_literal "0x25538")) () ")"))))) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "uVar9 = 0x9ea;" (assignment_expression "uVar9 = 0x9ea" (identifier "uVar9") (= "=") (number_literal "0x9ea")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0001ab1c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab1c;" (goto "goto") (statement_identifier "LAB_0001ab1c") (; ";"))) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" (identifier "unaff_s5") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" (identifier "FUN_00020df0") (argument_list "(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea)" (( "(") (identifier "iVar4") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x38dc" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x38dc")) (, ",") (number_literal "0x9ea") () ")"))) (; ";")) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" (statement_identifier "LAB_0001a72c") (: ":") (if_statement "if (*(code **)(iVar4 + 0x50) != (code *)0x0) {\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" (if "if") (parenthesized_expression "(*(code **)(iVar4 + 0x50) != (code *)0x0)" (( "(") (binary_expression "*(code **)(iVar4 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(iVar4 + 0x50)" (* "*") (cast_expression "(code **)(iVar4 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" ({ "{") (expression_statement "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(iVar4 + 0x50))" (( "(") (pointer_expression "**(code **)(iVar4 + 0x50)" (* "*") (pointer_expression "*(code **)(iVar4 + 0x50)" (* "*") (cast_expression "(code **)(iVar4 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x54)" (( "(") (binary_expression "iVar4 + 0x54" (identifier "iVar4") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s8 + 0xc" (identifier "unaff_s8") (+ "+") (number_literal "0xc")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (**(code **)(pcVar14 + 0x25534))();\n  }" (if "if") (parenthesized_expression "(unaff_s8[0x39] != 0)" (( "(") (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar14 + 0x25534))();\n  }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x25534))();" (call_expression "(**(code **)(pcVar14 + 0x25534))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25534))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25534)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25534)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25534)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25534)" (( "(") (binary_expression "pcVar14 + 0x25534" (identifier "pcVar14") (+ "+") (number_literal "0x25534")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x25354))(uVar7)" (parenthesized_expression "(**(code **)(pcVar14 + 0x25354))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25354)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25354)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25354)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25354)" (( "(") (binary_expression "pcVar14 + 0x25354" (identifier "pcVar14") (+ "+") (number_literal "0x25354")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n    uVar9 = 0xa56;\n    if (*piVar10 == 9) goto LAB_0001aa40;\n  }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar9 = 0xa56;" (assignment_expression "uVar9 = 0xa56" (identifier "uVar9") (= "=") (number_literal "0xa56")) (; ";")) (if_statement "if (*piVar10 == 9) goto LAB_0001aa40;" (if "if") (parenthesized_expression "(*piVar10 == 9)" (( "(") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001aa40;" (goto "goto") (statement_identifier "LAB_0001aa40") (; ";"))) (} "}"))) (expression_statement "FUN_00019c48(iVar4,uVar8,iVar6);" (call_expression "FUN_00019c48(iVar4,uVar8,iVar6)" (identifier "FUN_00019c48") (argument_list "(iVar4,uVar8,iVar6)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x254a4))(piVar12)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254a4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254a4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254a4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254a4)" (( "(") (binary_expression "pcVar14 + 0x254a4" (identifier "pcVar14") (+ "+") (number_literal "0x254a4")) () ")"))))) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0001ab40;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab40;" (goto "goto") (statement_identifier "LAB_0001ab40") (; ";"))) (if_statement "if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;" (if "if") (parenthesized_expression "((*(uint *)(iVar4 + 0xf8) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(iVar4 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar4 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar4 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xf8)" (( "(") (binary_expression "iVar4 + 0xf8" (identifier "iVar4") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a804;" (goto "goto") (statement_identifier "LAB_0001a804") (; ";"))) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" (identifier "iVar3") (= "=") (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" (if "if") (parenthesized_expression "(unaff_s8[5] == 0)" (( "(") (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(iVar4 + 0x30) = iVar3;\n    iVar6 = 0;\n  }" ({ "{") (expression_statement "*(int *)(iVar4 + 0x30) = iVar3;" (assignment_expression "*(int *)(iVar4 + 0x30) = iVar3" (pointer_expression "*(int *)(iVar4 + 0x30)" (* "*") (cast_expression "(int *)(iVar4 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" (else "else") (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar3;\n    iVar3 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" ({ "{") (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar3;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar3" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" (* "*") (cast_expression "(int *)(unaff_s8[5] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[5] + 0x10)" (( "(") (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = unaff_s8[4];" (assignment_expression "iVar3 = unaff_s8[4]" (identifier "iVar3") (= "=") (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" (identifier "iVar6") (= "=") (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar3 == 0) goto LAB_0001aa64;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001aa64;" (goto "goto") (statement_identifier "LAB_0001aa64") (; ";"))) (expression_statement "*(int *)(iVar3 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  } while( true );" (do "do") (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar3 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }\n    pcVar15 = *(code **)(pcVar14 + 0x25538);\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar3 = (*pcVar15)(piVar12);\n    if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }\n    uVar9 = 0xa67;\nLAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);\nLAB_0001ab40:\n    uVar9 = 0xa5b;\nLAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar9 = 0x912;\nLAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);\nLAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;\n  }" ({ "{") (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001a804:\n    iVar3 = unaff_s8[2];" (statement_identifier "LAB_0001a804") (: ":") (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" (identifier "iVar3") (= "=") (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" (if "if") (parenthesized_expression "(unaff_s8[3] == 0)" (( "(") (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar4 + 8) = iVar3;\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "*(int *)(iVar4 + 8) = iVar3;" (assignment_expression "*(int *)(iVar4 + 8) = iVar3" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" (else "else") (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar3;\n      iVar3 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" ({ "{") (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar3;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar3" (pointer_expression "*(int *)(unaff_s8[3] + 8)" (* "*") (cast_expression "(int *)(unaff_s8[3] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[3] + 8)" (( "(") (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = unaff_s8[2];" (assignment_expression "iVar3 = unaff_s8[2]" (identifier "iVar3") (= "=") (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" (identifier "iVar6") (= "=") (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar3 == 0) {\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar4 + 0xc) = iVar6;\n    }" ({ "{") (expression_statement "*(int *)(iVar4 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" (else "else") (compound_statement "{\n      *(int *)(iVar3 + 0xc) = iVar6;\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x25538);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x25538)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x25538)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25538)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25538)" (( "(") (binary_expression "pcVar14 + 0x25538" (identifier "pcVar14") (+ "+") (number_literal "0x25538")) () ")"))))) (; ";")) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (*pcVar15)(piVar12);" (assignment_expression "iVar3 = (*pcVar15)(piVar12)" (identifier "iVar3") (= "=") (call_expression "(*pcVar15)(piVar12)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);\n      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);\n      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();\n      if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }\n      (**(code **)(pcVar14 + 0x254b4))();\n    }" ({ "{") (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" (identifier "FUN_00021358") (argument_list "(unaff_s8[10])" (( "(") (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15])" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8[0x15])" (( "(") (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x254f4))(unaff_s8);" (call_expression "(**(code **)(pcVar14 + 0x254f4))(unaff_s8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x254f4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254f4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254f4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254f4)" (( "(") (binary_expression "pcVar14 + 0x254f4" (identifier "pcVar14") (+ "+") (number_literal "0x254f4")) () ")"))))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar14 + 0x25400))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar14 + 0x25400))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x25400))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x25400)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x25400)" (* "*") (cast_expression "(code **)(pcVar14 + 0x25400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25400)" (( "(") (binary_expression "pcVar14 + 0x25400" (identifier "pcVar14") (+ "+") (number_literal "0x25400")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (unaff_s5 == 0) {\n        *piVar10 = 0x16;\n      }\n      else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" (if "if") (parenthesized_expression "(unaff_s5 == 0)" (( "(") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *piVar10 = 0x16;\n      }" ({ "{") (expression_statement "*piVar10 = 0x16;" (assignment_expression "*piVar10 = 0x16" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (number_literal "0x16")) (; ";")) (} "}")) (else_clause "else {\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" (else "else") (compound_statement "{\n        *piVar10 = unaff_s5;\n        unaff_s5 = 0;\n      }" ({ "{") (expression_statement "*piVar10 = unaff_s5;" (assignment_expression "*piVar10 = unaff_s5" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0001a1e8:\n      if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" (statement_identifier "LAB_0001a1e8") (: ":") (if_statement "if (iStack_bc == *piVar11) {\n        return unaff_s5;\n      }" (if "if") (parenthesized_expression "(iStack_bc == *piVar11)" (( "(") (binary_expression "iStack_bc == *piVar11" (identifier "iStack_bc") (== "==") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) () ")")) (compound_statement "{\n        return unaff_s5;\n      }" ({ "{") (return_statement "return unaff_s5;" (return "return") (identifier "unaff_s5") (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar14 + 0x254b4))();" (call_expression "(**(code **)(pcVar14 + 0x254b4))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x254b4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x254b4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x254b4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x254b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x254b4)" (( "(") (binary_expression "pcVar14 + 0x254b4" (identifier "pcVar14") (+ "+") (number_literal "0x254b4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0xa67;" (assignment_expression "uVar9 = 0xa67" (identifier "uVar9") (= "=") (number_literal "0xa67")) (; ";")) (labeled_statement "LAB_0001ab1c:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" (statement_identifier "LAB_0001ab1c") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x2526c)" (( "(") (binary_expression "pcVar14 + 0x2526c" (identifier "pcVar14") (+ "+") (number_literal "0x2526c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51b8)" (( "(") (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25264)" (( "(") (binary_expression "pcVar14 + 0x25264" (identifier "pcVar14") (+ "+") (number_literal "0x25264")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar9") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51b8" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";"))) (labeled_statement "LAB_0001ab40:\n    uVar9 = 0xa5b;" (statement_identifier "LAB_0001ab40") (: ":") (expression_statement "uVar9 = 0xa5b;" (assignment_expression "uVar9 = 0xa5b" (identifier "uVar9") (= "=") (number_literal "0xa5b")) (; ";"))) (labeled_statement "LAB_0001ab44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" (statement_identifier "LAB_0001ab44") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x2526c)" (( "(") (binary_expression "pcVar14 + 0x2526c" (identifier "pcVar14") (+ "+") (number_literal "0x2526c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x51e0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar14 + 0x25264)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25264)" (( "(") (binary_expression "pcVar14 + 0x25264" (identifier "pcVar14") (+ "+") (number_literal "0x25264")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar9") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x51e0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";"))) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" (statement_identifier "LAB_0001ab68") (: ":") (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" (identifier "FUN_00019bc8") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0001ab78:\n    uVar9 = 0x912;" (statement_identifier "LAB_0001ab78") (: ":") (expression_statement "uVar9 = 0x912;" (assignment_expression "uVar9 = 0x912" (identifier "uVar9") (= "=") (number_literal "0x912")) (; ";"))) (labeled_statement "LAB_0001aa40:\n    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (statement_identifier "LAB_0001aa40") (: ":") (expression_statement "puVar2 = *(undefined4 **)(pcVar14 + 0x25264);" (assignment_expression "puVar2 = *(undefined4 **)(pcVar14 + 0x25264)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(pcVar14 + 0x25264)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x25264)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x25264)" (( "(") (binary_expression "pcVar14 + 0x25264" (identifier "pcVar14") (+ "+") (number_literal "0x25264")) () ")"))))) (; ";"))) (labeled_statement "LAB_0001aa44:\n    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" (statement_identifier "LAB_0001aa44") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))\n              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x2526c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar14 + 0x2526c)" (* "*") (cast_expression "(undefined4 **)(pcVar14 + 0x2526c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x2526c)" (( "(") (binary_expression "pcVar14 + 0x2526c" (identifier "pcVar14") (+ "+") (number_literal "0x2526c")) () ")"))))))) () ")")) (argument_list "(*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,\n               *(int *)(pcVar14 + 0x25258) + -0x3950)" (( "(") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x40a0" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar9") (, ",") (binary_expression "*(int *)(pcVar14 + 0x25258) + -0x3950" (pointer_expression "*(int *)(pcVar14 + 0x25258)" (* "*") (cast_expression "(int *)(pcVar14 + 0x25258)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x25258)" (( "(") (binary_expression "pcVar14 + 0x25258" (identifier "pcVar14") (+ "+") (number_literal "0x25258")) () ")")))) (+ "+") (number_literal "-0x3950")) () ")"))) (; ";"))) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" (identifier "iVar6") (= "=") (identifier "extraout_v1")) (; ";")) (labeled_statement "LAB_0001aa64:\n    *(int *)(iVar4 + 0x34) = iVar6;" (statement_identifier "LAB_0001aa64") (: ":") (expression_statement "*(int *)(iVar4 + 0x34) = iVar6;" (assignment_expression "*(int *)(iVar4 + 0x34) = iVar6" (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar6")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (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 (identifier) (identifier) (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)) value: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) 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 (identifier)))))) (goto_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)) (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))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_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 (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_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)))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (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)) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (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)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (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))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)) 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 (number_literal) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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 (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (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 (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (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: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)) (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))))) (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))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (identifier) (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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 (binary_expression left: (identifier) right: (number_literal)) (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 (subscript_expression argument: (identifier) index: (number_literal)) (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 (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (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) (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)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (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 (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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))))) (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 (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))) (labeled_statement label: (statement_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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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 (subscript_expression argument: (identifier) index: (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 (subscript_expression argument: (identifier) index: (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 (identifier)))) (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (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: (identifier) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) condition: (parenthesized_expression (true))))))

int MASKED(void)

{
  uint uVar1;
  undefined4 *puVar2;
  int extraout_v1;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  int *piVar10;
  int *piVar11;
  undefined1 *unaff_s2;
  int unaff_s3;
  int unaff_s4;
  int *piVar12;
  int unaff_s5;
  uint uVar13;
  code *pcVar14;
  code *pcVar15;
  int *unaff_s8;
  undefined4 auStack_d0 [2];
  int *piStack_c8;
  int iStack_bc;
  int iStack_b8;
  int *piStack_b4;
  undefined1 *puStack_b0;
  int iStack_ac;
  int iStack_a8;
  byte bStack_79;
  undefined1 auStack_74 [24];
  int iStack_5c;
  
  pcVar14 = *(code **)PTR_DAT_0003f070;
  (*pcVar14)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x118,
             PTR_DAT_0003f05c + -0x51e0);
  uVar8 = 0x128;
  iVar3 = **(int **)(pcVar14 + 0x25460);
  pcVar15 = (code *)**(undefined4 **)(pcVar14 + 0x25468);
  iVar6 = *(int *)(pcVar14 + 0x25454) + -0x40a0;
  (*pcVar15)(iVar3,iVar6,0x128,*(int *)(pcVar14 + 0x25454) + -0x51b8);
  piVar10 = *(int **)(pcVar15 + 0x256a4);
  iStack_5c = *piVar10;
  iVar4 = *(int *)(iVar3 + 0x70);
  while (iVar5 = iVar4, iVar5 != 0) {
    iVar3 = iVar5;
    iVar4 = *(int *)(iVar5 + 0x70);
  }
  if (*(int *)(iVar3 + 0xf4) == 0) {
LAB_00019cac:
    if (iStack_5c == *piVar10) {
      return *piVar10;
    }
LAB_00019dc0:
    (**(code **)(pcVar15 + 0x25670))();
LAB_00019dcc:
    MASKED();
  }
  else {
    unaff_s2 = auStack_74;
    iVar4 = FUN_0001996c(iVar6,uVar8,unaff_s2);
    if (iVar4 == 0) goto LAB_00019cac;
    unaff_s3 = iVar3 + 0x94;
    iVar4 = (**(code **)(pcVar15 + 0x25660))(unaff_s3);
    if (iVar4 != 0) goto LAB_00019dcc;
    unaff_s4 = *(int *)(pcVar15 + 0x2543c);
    iVar3 = iVar3 + 0x78;
    piVar12 = (int *)(**(code **)(pcVar15 + 0x25574))(unaff_s2,iVar3,unaff_s4 + -0x7054);
    if (piVar12 != (int *)0x0) {
      unaff_s2 = (undefined1 *)*piVar12;
      iVar4 = *(int *)(unaff_s2 + 0x14) + -1;
      if (*(int *)(unaff_s2 + 0x14) != 0) {
        *(int *)(unaff_s2 + 0x14) = iVar4;
        if (iVar4 == 0) goto LAB_00019d6c;
        while (iVar4 = (**(code **)(pcVar15 + 0x256f4))(unaff_s3), iVar4 != 0) {
          FUN_00019c08();
LAB_00019d6c:
          (**(code **)(pcVar15 + 0x25620))(unaff_s2,iVar3,unaff_s4 + -0x7054);
          (**(code **)(pcVar15 + 0x256b0))(unaff_s2);
        }
        goto LAB_00019cac;
      }
      (*(code *)**(undefined4 **)(pcVar15 + 0x25428))
                (**(undefined4 **)(pcVar15 + 0x25420),*(int *)(pcVar15 + 0x25414) + -0x40a0,0x1e2,
                 *(int *)(pcVar15 + 0x25414) + -0x3984);
      goto LAB_00019dc0;
    }
  }
  uVar8 = 0x1dc;
  iVar4 = **(int **)(pcVar15 + 0x25420);
  iVar6 = *(int *)(pcVar15 + 0x25414) + -0x39b0;
  pcVar14 = (code *)**(undefined4 **)(pcVar15 + 0x25428);
  uVar7 = *(int *)(pcVar15 + 0x25414) - 0x40a0;
  (*pcVar14)(iVar4,uVar7,0x1dc);
  piVar11 = *(int **)(pcVar14 + 0x254e8);
  uVar13 = (uint)(pcVar15 + 0x2d3e8) & 0xff;
  piVar12 = (int *)(uint)bStack_79;
  iStack_bc = *piVar11;
  iStack_b8 = iVar3;
  piStack_b4 = piVar10;
  puStack_b0 = unaff_s2;
  iStack_ac = unaff_s3;
  iStack_a8 = unaff_s4;
  if ((uVar13 != 0) && (iVar3 = *(int *)(iVar4 + 0x74), iVar3 != 0)) {
    uVar13 = *(uint *)(iVar4 + 0x88);
    if (uVar13 != 0) {
      if (uVar13 == 0) {
        trap(7);
      }
      iVar5 = (uVar7 % uVar13) * 0x174 + iVar3;
      if (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8)) {
        uVar1 = uVar7;
        do {
          uVar1 = uVar1 + 1;
          if (uVar7 + uVar13 == uVar1) goto LAB_00019ee8;
          if (uVar13 == 0) {
            trap(7);
          }
          iVar5 = (uVar1 % uVar13) * 0x174 + iVar3;
        } while (*(uint *)(iVar5 + 0xec) <= *(uint *)(iVar5 + 0xe8));
      }
      unaff_s5 = FUN_00019e04(iVar5,uVar7,uVar8,iVar6,1,piVar12);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    if ((iVar3 != 0) && (uVar9 = 0x900, *piVar10 == 9)) {
      puVar2 = *(undefined4 **)(pcVar14 + 0x25264);
      goto LAB_0001aa44;
    }
    goto LAB_0001a1dc;
  }
  if ((0x3ff < (int)uVar7) &&
     (piVar10 = *(int **)(pcVar14 + 0x25258), (*(uint *)(iVar4 + 0xf8) & 0x240) == 0))
  goto LAB_0001a2ec;
  unaff_s5 = iVar4;
  if (*(int *)(iVar4 + 0xe8) == *(int *)(iVar4 + 0xec)) {
LAB_0001a190:
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    if ((iVar3 != 0) && (uVar9 = 0x93d, *piVar10 == 9)) goto LAB_0001aa40;
LAB_0001a1dc:
    unaff_s5 = 0;
    *piVar10 = 0x17;
    goto LAB_0001a1e8;
  }
  iVar3 = *(int *)(iVar4 + 0x70);
  while (iVar5 = iVar3, iVar5 != 0) {
    unaff_s5 = iVar5;
    iVar3 = *(int *)(iVar5 + 0x70);
  }
  if (*(int *)(unaff_s5 + 0xf4) != 0) {
    unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25458))(0x18);
    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;
    iVar3 = FUN_0001996c(uVar8,iVar6,unaff_s8);
    if (iVar3 != 0) {
      iVar3 = unaff_s5 + 0x94;
      iVar5 = (**(code **)(pcVar14 + 0x254a4))(iVar3);
      if (iVar5 != 0) goto LAB_0001ab68;
      puVar2 = (undefined4 *)
               (**(code **)(pcVar14 + 0x25410))
                         (unaff_s8,unaff_s5 + 0x78,*(int *)(pcVar14 + 0x25280) + -0x7054);
      if (puVar2 == (undefined4 *)0x0) {
        piVar10 = (int *)(*(int *)(pcVar14 + 0x25258) + -0x3904);
        FUN_00020df0(unaff_s5,piVar10);
        iVar3 = (**(code **)(pcVar14 + 0x25538))(iVar3);
        if (iVar3 == 0) {
          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        piVar10 = (int *)*puVar2;
        if (unaff_s8 != piVar10) {
          (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
        }
        pcVar15 = *(code **)(pcVar14 + 0x25538);
        if ((uint)piVar10[5] < *(uint *)(unaff_s5 + 0xf4)) {
          piVar10[5] = piVar10[5] + 1;
          iVar3 = (*pcVar15)(iVar3);
          if (iVar3 == 0) goto LAB_00019f70;
        }
        else {
          iVar3 = (*pcVar15)(iVar3);
          if (iVar3 == 0) goto LAB_0001a190;
        }
      }
      FUN_00019c08();
LAB_0001a2ec:
      FUN_00020df0(iVar4,piVar10 + -0xe4e,uVar7,0x400);
      iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      if ((iVar3 != 0) && (*piVar10 == 9)) goto LAB_0001ab78;
      unaff_s5 = 0;
      *piVar10 = 0x16;
      goto LAB_0001a1e8;
    }
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
  }
LAB_00019f70:
  if ((*(code **)(iVar4 + 0x40) != (code *)0x0) &&
     (unaff_s5 = (**(code **)(iVar4 + 0x40))(*(undefined4 *)(iVar4 + 0x44),uVar8,iVar6),
     unaff_s5 == 0)) {
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if (iVar3 != 0) {
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      uVar9 = 0x950;
      if (*piVar10 == 9) goto LAB_0001aa40;
    }
    FUN_00019c48(iVar4,uVar8,iVar6);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (int *)(**(code **)(pcVar14 + 0x25340))(1,0x100);
  if (unaff_s8 == (int *)0x0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    piVar12 = (int *)*piVar10;
    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x962, *piVar10 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    *piVar10 = (int)piVar12;
    goto LAB_0001a1e8;
  }
  iVar3 = FUN_00021248(*(undefined4 *)(iVar4 + 0x7c));
  unaff_s8[10] = iVar3;
  if (iVar3 == 0) {
    piVar12 = (int *)(**(code **)(pcVar14 + 0x25400))();
    uVar9 = (**(code **)(pcVar14 + 0x25450))(*piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x971, *piVar12 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    *piVar12 = 0xc;
    goto LAB_0001a1e8;
  }
  pcVar15 = *(code **)(pcVar14 + 0x25458);
  unaff_s8[0x26] = *(int *)(iVar4 + 0xf0);
  iVar3 = (*pcVar15)(iVar6);
  unaff_s8[0x15] = iVar3;
  if (iVar3 == 0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    piVar12 = (int *)*piVar10;
    uVar9 = (**(code **)(pcVar14 + 0x25450))(piVar12);
    FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x389c,uVar9);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (uVar9 = 0x985, *piVar10 == 9)) goto LAB_0001aa40;
    unaff_s5 = 0;
    FUN_00019c48(iVar4,uVar8,iVar6);
    FUN_00021358(unaff_s8[10]);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    *piVar10 = (int)piVar12;
    goto LAB_0001a1e8;
  }
  (**(code **)(pcVar14 + 0x254ec))(iVar3,uVar8,iVar6);
  unaff_s8[0x24] = iVar6;
  unaff_s8[0x29] = uVar7;
  *(byte *)(unaff_s8 + 0x2a) = bStack_79;
  unaff_s8[6] = iVar4;
  iVar3 = FUN_0002186c();
  uVar1 = *(uint *)(iVar4 + 0xf8);
  unaff_s8[0x25] = iVar3;
  if ((uVar1 & 2) == 0) {
    FUN_00015248(unaff_s8);
LAB_0001a03c:
    piVar12 = (int *)(iVar4 + 0xac);
    iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);
    uVar9 = 0x9e4;
    if (iVar3 != 0) goto LAB_0001ab44;
    if (*(uint *)(iVar4 + 0xe8) < *(uint *)(iVar4 + 0xec)) {
      *(uint *)(iVar4 + 0xe8) = *(uint *)(iVar4 + 0xe8) + 1;
      if ((*(uint *)(iVar4 + 0xf8) & 4) == 0) {
        iVar3 = *(int *)(iVar4 + 0x30);
        iVar5 = *(int *)(iVar4 + 0x34);
        unaff_s8[5] = 0;
        unaff_s8[4] = iVar3;
        if (iVar5 == 0) {
          *(int **)(iVar4 + 0x34) = unaff_s8;
        }
        else {
          *(int **)(iVar3 + 0x14) = unaff_s8;
        }
        *(int **)(iVar4 + 0x30) = unaff_s8;
      }
      iVar3 = *(int *)(iVar4 + 8);
      iVar5 = *(int *)(iVar4 + 0xc);
      unaff_s8[3] = 0;
      unaff_s8[2] = iVar3;
      if (iVar5 == 0) {
        *(int **)(iVar4 + 0xc) = unaff_s8;
      }
      else {
        *(int **)(iVar3 + 0xc) = unaff_s8;
      }
      pcVar15 = *(code **)(pcVar14 + 0x25538);
      *(int **)(iVar4 + 8) = unaff_s8;
      iVar3 = (*pcVar15)(piVar12);
      uVar9 = 0xa01;
      if (iVar3 != 0) goto LAB_0001ab1c;
      if (*(code **)(iVar4 + 0x50) != (code *)0x0) {
        (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,0);
      }
      uVar1 = *(uint *)(iVar4 + 0xf8);
      if ((uVar1 & 4) == 0) {
        iVar3 = *(int *)(iVar4 + 0x90);
        unaff_s8[0x16] = *(int *)(iVar4 + 0x8c);
        unaff_s8[0x17] = iVar3;
        if ((uVar1 & 0x200) == 0) {
LAB_0001a9b8:
          unaff_s5 = 1;
          if (uVar13 == 0) goto LAB_0001a1e8;
          if (*(int *)(iVar4 + 0xdc) == -1) goto LAB_0001a1e8;
          iVar3 = (**(code **)(pcVar14 + 0x2541c))
                            (*(int *)(iVar4 + 0xdc),*(int *)(pcVar14 + 0x25258) + -0x28d8,8);
          if ((iVar3 < 1) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 != 0xb))
          {
            unaff_s5 = 1;
            FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = 1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar3 = FUN_00023bd4(unaff_s8 + 0x16,*(int *)(pcVar14 + 0x25258) + -0x3824,
                             *(undefined4 *)(iVar4 + 0x84),*(int *)(pcVar14 + 0x25280) + -0x445c,
                             unaff_s8);
        if (iVar3 == 0) {
          piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
          unaff_s5 = *piVar10;
          uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);
          FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x3814,uVar9);
          goto LAB_0001a72c;
        }
        uVar1 = *(uint *)(iVar4 + 0xf8);
        if ((uVar1 & 0x200) == 0) {
          if ((uVar1 & 4) != 0) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if ((uVar1 & 0x1000) == 0) {
        pcVar15 = *(code **)(pcVar14 + 0x25474);
      }
      else {
        pcVar15 = *(code **)(pcVar14 + 0x25474);
        if (uVar13 == 0) {
          iVar3 = *(int *)(iVar4 + 0x20);
          iVar6 = *(int *)(iVar4 + 0x24);
          unaff_s8[1] = 0;
          unaff_s8[0x2c] = unaff_s8[0x2c] | 7;
          *unaff_s8 = iVar3;
          if (iVar6 == 0) {
            *(int **)(iVar4 + 0x24) = unaff_s8;
            unaff_s5 = 1;
            *(int **)(iVar4 + 0x20) = unaff_s8;
            goto LAB_0001a1e8;
          }
          *(int **)(iVar3 + 4) = unaff_s8;
          unaff_s5 = 1;
          *(int **)(iVar4 + 0x20) = unaff_s8;
          goto LAB_0001a1e8;
        }
      }
      auStack_d0[0] = 0x80000007;
      piStack_c8 = unaff_s8;
      iVar3 = (*pcVar15)(*(undefined4 *)(iVar4 + 0xcc),1,uVar7,auStack_d0);
      if (iVar3 == 0) {
        unaff_s5 = 1;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;
        goto LAB_0001a1e8;
      }
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      unaff_s5 = *piVar10;
      uVar9 = (**(code **)(pcVar14 + 0x25450))(unaff_s5);
      FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x4da8,uVar9);
      goto LAB_0001a72c;
    }
  }
  else {
    piVar12 = (int *)0x1;
    unaff_s8[0x3c] = 1;
    FUN_00029db0(unaff_s8);
    (**(code **)(pcVar14 + 0x25414))(unaff_s8 + 0x39,0x49);
    (**(code **)(pcVar14 + 0x253ac))(unaff_s8[0x39],*(undefined4 *)(iVar4 + 0x10c));
    (**(code **)(pcVar14 + 0x25454))(unaff_s8[0x39],unaff_s8);
    if (*(int *)(iVar4 + 0x110) == 1) {
      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],1,*(undefined4 *)(iVar4 + 0x114));
LAB_0001a950:
      (**(code **)(pcVar14 + 0x253e8))(unaff_s8[0x39],uVar7,uVar7);
      if (*(int *)(iVar4 + 0x138) != 0) {
        (**(code **)(pcVar14 + 0x25470))(unaff_s8[0x39],1);
      }
      goto LAB_0001a03c;
    }
    if (*(int *)(iVar4 + 0x110) == 4) {
      (**(code **)(pcVar14 + 0x253d4))(unaff_s8[0x39],4,*(undefined4 *)(iVar4 + 0x11c));
      (**(code **)(pcVar14 + 0x25434))
                (*(undefined4 *)(iVar4 + 0x11c),*(int *)(pcVar14 + 0x25280) + -0x703c);
      goto LAB_0001a950;
    }
    FUN_00020df0(unaff_s8[6],*(int *)(pcVar14 + 0x25258) + -0x387c);
    iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
    if ((iVar3 != 0) && (piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))(), *piVar10 == 9)) {
      uVar9 = 0x9c3;
      goto LAB_0001aa40;
    }
    FUN_00019c48(iVar4,uVar8,iVar6);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);
    (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,0x9c9,
               *(int *)(pcVar14 + 0x25258) + -0x383c);
  }
  iVar3 = (**(code **)(pcVar14 + 0x25538))(piVar12);
  uVar9 = 0x9ea;
  if (iVar3 != 0) goto LAB_0001ab1c;
  unaff_s5 = 0x17;
  FUN_00020df0(iVar4,*(int *)(pcVar14 + 0x25258) + -0x38dc,0x9ea);
LAB_0001a72c:
  if (*(code **)(iVar4 + 0x50) != (code *)0x0) {
    (**(code **)(iVar4 + 0x50))(*(undefined4 *)(iVar4 + 0x54),unaff_s8,unaff_s8 + 0xc,1);
  }
  if (unaff_s8[0x39] != 0) {
    (**(code **)(pcVar14 + 0x25534))();
  }
  iVar3 = (**(code **)(pcVar14 + 0x25354))(uVar7);
  if (iVar3 != 0) {
    piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
    uVar9 = 0xa56;
    if (*piVar10 == 9) goto LAB_0001aa40;
  }
  FUN_00019c48(iVar4,uVar8,iVar6);
  iVar3 = (**(code **)(pcVar14 + 0x254a4))(piVar12);
  if (iVar3 != 0) goto LAB_0001ab40;
  if ((*(uint *)(iVar4 + 0xf8) & 4) != 0) goto LAB_0001a804;
  iVar3 = unaff_s8[4];
  if (unaff_s8[5] == 0) {
    *(int *)(iVar4 + 0x30) = iVar3;
    iVar6 = 0;
  }
  else {
    *(int *)(unaff_s8[5] + 0x10) = iVar3;
    iVar3 = unaff_s8[4];
    iVar6 = unaff_s8[5];
  }
  if (iVar3 == 0) goto LAB_0001aa64;
  *(int *)(iVar3 + 0x14) = iVar6;
  do {
    unaff_s8[4] = 0;
    unaff_s8[5] = 0;
LAB_0001a804:
    iVar3 = unaff_s8[2];
    if (unaff_s8[3] == 0) {
      *(int *)(iVar4 + 8) = iVar3;
      iVar6 = 0;
    }
    else {
      *(int *)(unaff_s8[3] + 8) = iVar3;
      iVar3 = unaff_s8[2];
      iVar6 = unaff_s8[3];
    }
    if (iVar3 == 0) {
      *(int *)(iVar4 + 0xc) = iVar6;
    }
    else {
      *(int *)(iVar3 + 0xc) = iVar6;
    }
    pcVar15 = *(code **)(pcVar14 + 0x25538);
    unaff_s8[2] = 0;
    unaff_s8[3] = 0;
    iVar3 = (*pcVar15)(piVar12);
    if (iVar3 == 0) {
      FUN_00021358(unaff_s8[10]);
      (**(code **)(pcVar14 + 0x254f4))(unaff_s8[0x15]);
      (**(code **)(pcVar14 + 0x254f4))(unaff_s8);
      piVar10 = (int *)(**(code **)(pcVar14 + 0x25400))();
      if (unaff_s5 == 0) {
        *piVar10 = 0x16;
      }
      else {
        *piVar10 = unaff_s5;
        unaff_s5 = 0;
      }
LAB_0001a1e8:
      if (iStack_bc == *piVar11) {
        return unaff_s5;
      }
      (**(code **)(pcVar14 + 0x254b4))();
    }
    uVar9 = 0xa67;
LAB_0001ab1c:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x51b8);
LAB_0001ab40:
    uVar9 = 0xa5b;
LAB_0001ab44:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (**(undefined4 **)(pcVar14 + 0x25264),*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x51e0);
LAB_0001ab68:
    MASKED();
LAB_0001ab78:
    uVar9 = 0x912;
LAB_0001aa40:
    puVar2 = *(undefined4 **)(pcVar14 + 0x25264);
LAB_0001aa44:
    (*(code *)**(undefined4 **)(pcVar14 + 0x2526c))
              (*puVar2,*(int *)(pcVar14 + 0x25258) + -0x40a0,uVar9,
               *(int *)(pcVar14 + 0x25258) + -0x3950);
    iVar6 = extraout_v1;
LAB_0001aa64:
    *(int *)(iVar4 + 0x34) = iVar6;
  } while( true );
}

